Coverage Report

Created: 2024-05-29 01:35

/src/scnlib/include/scn/scan.h
Line
Count
Source (jump to first uncovered line)
1
// Copyright 2017 Elias Kosunen
2
//
3
// Licensed under the Apache License, Version 2.0 (the "License");
4
// you may not use this file except in compliance with the License.
5
// You may obtain a copy of the License at
6
//
7
//     https://www.apache.org/licenses/LICENSE-2.0
8
//
9
// Unless required by applicable law or agreed to in writing, software
10
// distributed under the License is distributed on an "AS IS" BASIS,
11
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
// See the License for the specific language governing permissions and
13
// limitations under the License.
14
//
15
// This file is a part of scnlib:
16
//     https://github.com/eliaskosunen/scnlib
17
18
#pragma once
19
20
// Includes <cassert>, <cstddef>, <cstdint>, and <type_traits>
21
#include <scn/fwd.h>
22
23
#include <array>
24
#include <cstdio>
25
#include <cstring>
26
#include <iterator>
27
#include <limits>
28
#include <optional>
29
#include <string>
30
#include <string_view>
31
#include <tuple>
32
33
/////////////////////////////////////////////////////////////////
34
// <expected> implementation
35
/////////////////////////////////////////////////////////////////
36
37
// The following implementation of expected is based on TartanLlama/expected,
38
// but is heavily modified.
39
//
40
// The original source is here:
41
//     https://github.com/TartanLlama/expected
42
// which is licensed under CC0 (Public Domain).
43
44
namespace scn {
45
SCN_BEGIN_NAMESPACE
46
47
/////////////////////////////////////////////////////////////////
48
// Metaprogramming facilities
49
/////////////////////////////////////////////////////////////////
50
51
namespace detail {
52
53
template <typename T>
54
using integer_type_for_char =
55
    std::conditional_t<std::is_signed_v<T>, int, unsigned>;
56
57
template <typename T, template <typename...> class Templ>
58
struct is_specialization_of_impl : std::false_type {};
59
template <typename... T, template <typename...> class Templ>
60
struct is_specialization_of_impl<Templ<T...>, Templ> : std::true_type {};
61
62
template <typename T, template <typename...> class Templ>
63
using is_specialization_of =
64
    is_specialization_of_impl<remove_cvref_t<T>, Templ>;
65
template <typename T, template <typename...> class Templ>
66
inline constexpr bool is_specialization_of_v =
67
    is_specialization_of<T, Templ>::value;
68
69
// from mp11:
70
71
template <typename T>
72
struct mp_identity {
73
    using type = T;
74
};
75
template <typename T>
76
using mp_identity_t = typename mp_identity<T>::type;
77
78
template <bool B>
79
using mp_bool = std::integral_constant<bool, B>;
80
template <typename T>
81
using mp_to_bool = mp_bool<static_cast<bool>(T::value)>;
82
template <typename T>
83
using mp_not = mp_bool<!T::value>;
84
85
template <bool C, typename T, typename... E>
86
struct mp_if_c_impl;
87
template <typename T, typename... E>
88
struct mp_if_c_impl<true, T, E...> {
89
    using type = T;
90
};
91
template <typename T, typename E>
92
struct mp_if_c_impl<false, T, E> {
93
    using type = E;
94
};
95
96
template <bool C, typename T, typename... E>
97
using mp_if_c = typename mp_if_c_impl<C, T, E...>::type;
98
template <typename C, typename T, typename... E>
99
using mp_if = typename mp_if_c_impl<static_cast<bool>(C::value), T, E...>::type;
100
101
template <template <typename...> class F, typename... T>
102
struct mp_valid_impl {
103
    template <template <typename...> class G, typename = G<T...>>
104
    static std::true_type check(int);
105
    template <template <typename...> class>
106
    static std::false_type check(...);
107
108
    using type = decltype(check<F>(0));
109
};
110
111
template <template <typename...> class F, typename... T>
112
using mp_valid = typename mp_valid_impl<F, T...>::type;
113
template <template <typename...> class F, typename... T>
114
inline constexpr bool mp_valid_v = mp_valid<F, T...>::value;
115
116
struct mp_nonesuch {};
117
template <template <typename...> class F, typename... T>
118
struct mp_defer_impl {
119
    using type = F<T...>;
120
};
121
122
template <template <typename...> class F, typename... T>
123
using mp_defer = mp_if<mp_valid<F, T...>, mp_defer_impl<F, T...>, mp_nonesuch>;
124
125
template <bool C, class T, template <class...> class F, class... U>
126
struct mp_eval_if_c_impl;
127
128
template <class T, template <class...> class F, class... U>
129
struct mp_eval_if_c_impl<true, T, F, U...> {
130
    using type = T;
131
};
132
133
template <class T, template <class...> class F, class... U>
134
struct mp_eval_if_c_impl<false, T, F, U...> : mp_defer<F, U...> {};
135
136
template <bool C, class T, template <class...> class F, class... U>
137
using mp_eval_if_c = typename mp_eval_if_c_impl<C, T, F, U...>::type;
138
template <class C, class T, template <class...> class F, class... U>
139
using mp_eval_if =
140
    typename mp_eval_if_c_impl<static_cast<bool>(C::value), T, F, U...>::type;
141
template <class C, class T, class Q, class... U>
142
using mp_eval_if_q = typename mp_eval_if_c_impl<static_cast<bool>(C::value),
143
                                                T,
144
                                                Q::template fn,
145
                                                U...>::type;
146
147
// mp_eval_if_not
148
template <class C, class T, template <class...> class F, class... U>
149
using mp_eval_if_not = mp_eval_if<mp_not<C>, T, F, U...>;
150
template <class C, class T, class Q, class... U>
151
using mp_eval_if_not_q = mp_eval_if<mp_not<C>, T, Q::template fn, U...>;
152
153
// mp_eval_or
154
template <class T, template <class...> class F, class... U>
155
using mp_eval_or = mp_eval_if_not<mp_valid<F, U...>, T, F, U...>;
156
template <class T, class Q, class... U>
157
using mp_eval_or_q = mp_eval_or<T, Q::template fn, U...>;
158
159
// mp_valid_and_true
160
template <template <class...> class F, class... T>
161
using mp_valid_and_true = mp_eval_or<std::false_type, F, T...>;
162
template <class Q, class... T>
163
using mp_valid_and_true_q = mp_valid_and_true<Q::template fn, T...>;
164
165
// extension
166
template <template <typename...> class F, typename... T>
167
using mp_valid_result =
168
    mp_if<mp_valid<F, T...>, mp_defer_impl<F, T...>, mp_identity<void>>;
169
template <template <typename...> class F, typename... T>
170
using mp_valid_result_t = typename mp_valid_result<F, T...>::type;
171
172
/////////////////////////////////////////////////////////////////
173
// pointer_traits and to_address
174
/////////////////////////////////////////////////////////////////
175
176
template <typename Ptr, typename>
177
struct pointer_traits {};
178
179
template <typename T>
180
struct pointer_traits<T*, void> {
181
    using pointer = T*;
182
    using element_type = T;
183
    using difference_type = std::ptrdiff_t;
184
185
    template <typename U>
186
    using rebind = U*;
187
188
    template <typename U = T, std::enable_if_t<!std::is_void_v<U>>* = nullptr>
189
    static constexpr pointer pointer_to(U& r) noexcept
190
    {
191
        return &r;
192
    }
193
194
    static constexpr pointer to_address(pointer p) noexcept
195
    {
196
        return p;
197
    }
198
};
199
200
template <typename Ptr>
201
using apply_member_difference_type = typename Ptr::difference_type;
202
template <typename Ptr>
203
using get_member_difference_type =
204
    mp_eval_or<std::ptrdiff_t, apply_member_difference_type, Ptr>;
205
206
template <typename Ptr, typename ElementType>
207
struct pointer_traits_generic_base {
208
    using pointer = Ptr;
209
    using element_type = ElementType;
210
211
    using difference_type = get_member_difference_type<Ptr>;
212
    static_assert(std::is_integral_v<difference_type>);
213
214
    // no rebind (TODO?)
215
216
    template <typename P = Ptr>
217
    static auto pointer_to(ElementType& r) -> decltype(P::pointer_to(r))
218
    {
219
        return Ptr::pointer_to(r);
220
    }
221
};
222
223
template <typename It, typename = void>
224
struct wrapped_pointer_iterator;
225
226
#ifdef _GLIBCXX_DEBUG
227
template <typename Elem, typename Container>
228
struct wrapped_pointer_iterator<__gnu_debug::_Safe_iterator<Elem*, Container>> {
229
    static constexpr auto to_address(
230
        const __gnu_debug::_Safe_iterator<Elem*, Container>& it) noexcept
231
    {
232
        return it.base();
233
    }
234
};
235
#endif
236
#if SCN_STDLIB_GLIBCXX
237
template <typename Elem, typename Container>
238
struct wrapped_pointer_iterator<
239
    __gnu_cxx::__normal_iterator<Elem*, Container>> {
240
    static constexpr auto to_address(
241
        const __gnu_cxx::__normal_iterator<Elem*, Container>& it) noexcept
242
    {
243
        return it.base();
244
    }
245
};
246
#endif
247
#if SCN_STDLIB_LIBCPP
248
template <typename Elem>
249
struct wrapped_pointer_iterator<std::__wrap_iter<Elem*>> {
250
    static constexpr auto to_address(const std::__wrap_iter<Elem*>& it) noexcept
251
    {
252
        return it.base();
253
    }
254
};
255
#endif
256
257
template <typename I>
258
using apply_deref = decltype(*SCN_DECLVAL(I&));
259
template <typename I>
260
using apply_incr = decltype(++SCN_DECLVAL(I&));
261
template <typename I>
262
using apply_member_unwrapped = decltype(SCN_DECLVAL(I&)._Unwrapped());
263
template <typename It>
264
struct wrapped_pointer_iterator<
265
    It,
266
    std::enable_if_t<mp_valid_v<apply_deref, It> &&
267
                     mp_valid_v<apply_incr, It> &&
268
                     mp_valid_v<apply_member_unwrapped, It>>> {
269
    static constexpr auto to_address(const It& it) noexcept
270
    {
271
        return it._Unwrapped();
272
    }
273
};
274
275
template <typename I>
276
using apply_member_to_address =
277
    decltype(wrapped_pointer_iterator<I>::to_address(SCN_DECLVAL(const I&)));
278
279
template <typename Iterator>
280
struct pointer_traits<
281
    Iterator,
282
    std::enable_if_t<mp_valid_v<apply_member_to_address, Iterator>>>
283
    : pointer_traits_generic_base<
284
          Iterator,
285
          std::remove_reference_t<decltype(*SCN_DECLVAL(Iterator&))>> {
286
    static constexpr auto to_address(const Iterator& it) noexcept
287
    {
288
        return wrapped_pointer_iterator<Iterator>::to_address(it);
289
    }
290
};
291
292
template <typename It>
293
using apply_ptr_traits_to_address =
294
    decltype(pointer_traits<It>::to_address(SCN_DECLVAL(const It&)));
295
template <typename It>
296
inline constexpr bool can_make_address_from_iterator =
297
    std::is_pointer_v<mp_valid_result_t<apply_ptr_traits_to_address, It>>;
298
299
template <typename T>
300
constexpr T* to_address_impl(T* p, priority_tag<2>) noexcept
301
1.45G
{
302
1.45G
    return p;
303
1.45G
}
char const* scn::v3::detail::to_address_impl<char const>(char const*, scn::v3::detail::priority_tag<2ul>)
Line
Count
Source
301
76.2M
{
302
76.2M
    return p;
303
76.2M
}
wchar_t const* scn::v3::detail::to_address_impl<wchar_t const>(wchar_t const*, scn::v3::detail::priority_tag<2ul>)
Line
Count
Source
301
1.37G
{
302
1.37G
    return p;
303
1.37G
}
304
template <typename Ptr>
305
constexpr auto to_address_impl(const Ptr& p, priority_tag<1>) noexcept
306
    -> decltype(::scn::detail::pointer_traits<Ptr>::to_address(p))
307
{
308
    return ::scn::detail::pointer_traits<Ptr>::to_address(p);
309
}
310
template <typename Ptr>
311
constexpr auto to_address_impl(const Ptr& p, priority_tag<0>) noexcept
312
    -> decltype(::scn::detail::to_address_impl(p.operator->(),
313
                                               priority_tag<2>{}))
314
{
315
    return ::scn::detail::to_address_impl(p.operator->(), priority_tag<2>{});
316
}
317
318
template <typename Ptr>
319
constexpr auto to_address(Ptr&& p) noexcept
320
    -> decltype(::scn::detail::to_address_impl(SCN_FWD(p), priority_tag<2>{}))
321
1.45G
{
322
1.45G
    return ::scn::detail::to_address_impl(SCN_FWD(p), priority_tag<2>{});
323
1.45G
}
_ZN3scn2v36detail10to_addressIRPKcEEDTclgssr3scn6detailE15to_address_implscDtfp_Efp_tlNS1_12priority_tagILm2EEEEEEOT_
Line
Count
Source
321
68.4M
{
322
68.4M
    return ::scn::detail::to_address_impl(SCN_FWD(p), priority_tag<2>{});
323
68.4M
}
_ZN3scn2v36detail10to_addressIPKcEEDTclgssr3scn6detailE15to_address_implscDtfp_Efp_tlNS1_12priority_tagILm2EEEEEEOT_
Line
Count
Source
321
7.80M
{
322
7.80M
    return ::scn::detail::to_address_impl(SCN_FWD(p), priority_tag<2>{});
323
7.80M
}
_ZN3scn2v36detail10to_addressIRPKwEEDTclgssr3scn6detailE15to_address_implscDtfp_Efp_tlNS1_12priority_tagILm2EEEEEEOT_
Line
Count
Source
321
1.34G
{
322
1.34G
    return ::scn::detail::to_address_impl(SCN_FWD(p), priority_tag<2>{});
323
1.34G
}
_ZN3scn2v36detail10to_addressIPKwEEDTclgssr3scn6detailE15to_address_implscDtfp_Efp_tlNS1_12priority_tagILm2EEEEEEOT_
Line
Count
Source
321
39.3M
{
322
39.3M
    return ::scn::detail::to_address_impl(SCN_FWD(p), priority_tag<2>{});
323
39.3M
}
324
325
}  // namespace detail
326
327
template <typename E>
328
class SCN_TRIVIAL_ABI unexpected {
329
    static_assert(std::is_destructible_v<E>);
330
331
public:
332
    unexpected() = delete;
333
334
    template <
335
        typename Err = E,
336
        typename = std::enable_if_t<!std::is_same_v<Err, unexpected> &&
337
                                    !std::is_same_v<Err, std::in_place_t> &&
338
                                    std::is_constructible_v<E, Err>>>
339
    explicit constexpr unexpected(Err&& e) noexcept(
340
        std::is_nothrow_constructible_v<E, Err>)
341
        : m_unexpected(std::forward<Err>(e))
342
54.1M
    {
343
54.1M
        SCN_UNLIKELY_ATTR SCN_UNUSED(m_unexpected);
344
54.1M
    }
scn::v3::unexpected<scn::v3::scan_error>::unexpected<scn::v3::scan_error&, void>(scn::v3::scan_error&)
Line
Count
Source
342
11.4M
    {
343
11.4M
        SCN_UNLIKELY_ATTR SCN_UNUSED(m_unexpected);
344
11.4M
    }
scn::v3::unexpected<scn::v3::scan_error>::unexpected<scn::v3::scan_error, void>(scn::v3::scan_error&&)
Line
Count
Source
342
914k
    {
343
914k
        SCN_UNLIKELY_ATTR SCN_UNUSED(m_unexpected);
344
914k
    }
scn::v3::unexpected<scn::v3::impl::eof_error>::unexpected<scn::v3::impl::eof_error, void>(scn::v3::impl::eof_error&&)
Line
Count
Source
342
225k
    {
343
225k
        SCN_UNLIKELY_ATTR SCN_UNUSED(m_unexpected);
344
225k
    }
scn::v3::unexpected<scn::v3::impl::eof_error>::unexpected<scn::v3::impl::eof_error&, void>(scn::v3::impl::eof_error&)
Line
Count
Source
342
168k
    {
343
168k
        SCN_UNLIKELY_ATTR SCN_UNUSED(m_unexpected);
344
168k
    }
scn::v3::unexpected<scn::v3::impl::parse_error>::unexpected<scn::v3::impl::parse_error, void>(scn::v3::impl::parse_error&&)
Line
Count
Source
342
114k
    {
343
114k
        SCN_UNLIKELY_ATTR SCN_UNUSED(m_unexpected);
344
114k
    }
scn::v3::unexpected<scn::v3::impl::parse_error::code>::unexpected<scn::v3::impl::parse_error::code, void>(scn::v3::impl::parse_error::code&&)
Line
Count
Source
342
35.8M
    {
343
35.8M
        SCN_UNLIKELY_ATTR SCN_UNUSED(m_unexpected);
344
35.8M
    }
scn::v3::unexpected<scn::v3::impl::parse_error>::unexpected<scn::v3::impl::parse_error&, void>(scn::v3::impl::parse_error&)
Line
Count
Source
342
5.39M
    {
343
5.39M
        SCN_UNLIKELY_ATTR SCN_UNUSED(m_unexpected);
344
5.39M
    }
345
346
    template <typename... Args,
347
              typename = std::enable_if_t<std::is_constructible_v<E, Args...>>>
348
    explicit constexpr unexpected(std::in_place_t, Args&&... args) noexcept(
349
        std::is_nothrow_constructible_v<E, Args...>)
350
        : m_unexpected(std::forward<Args>(args)...)
351
60.2M
    {
352
60.2M
        SCN_UNLIKELY_ATTR SCN_UNUSED(m_unexpected);
353
60.2M
    }
scn::v3::unexpected<scn::v3::scan_error>::unexpected<scn::v3::scan_error, void>(std::__1::in_place_t, scn::v3::scan_error&&)
Line
Count
Source
351
18.2M
    {
352
18.2M
        SCN_UNLIKELY_ATTR SCN_UNUSED(m_unexpected);
353
18.2M
    }
scn::v3::unexpected<scn::v3::impl::eof_error>::unexpected<scn::v3::impl::eof_error, void>(std::__1::in_place_t, scn::v3::impl::eof_error&&)
Line
Count
Source
351
393k
    {
352
393k
        SCN_UNLIKELY_ATTR SCN_UNUSED(m_unexpected);
353
393k
    }
scn::v3::unexpected<scn::v3::impl::parse_error>::unexpected<scn::v3::impl::parse_error, void>(std::__1::in_place_t, scn::v3::impl::parse_error&&)
Line
Count
Source
351
5.73M
    {
352
5.73M
        SCN_UNLIKELY_ATTR SCN_UNUSED(m_unexpected);
353
5.73M
    }
scn::v3::unexpected<scn::v3::impl::parse_error>::unexpected<scn::v3::impl::parse_error::code, void>(std::__1::in_place_t, scn::v3::impl::parse_error::code&&)
Line
Count
Source
351
35.8M
    {
352
35.8M
        SCN_UNLIKELY_ATTR SCN_UNUSED(m_unexpected);
353
35.8M
    }
354
355
    SCN_NODISCARD constexpr E& error() & noexcept
356
85.3M
    {
357
85.3M
        return m_unexpected;
358
85.3M
    }
scn::v3::unexpected<scn::v3::scan_error>::error() &
Line
Count
Source
356
23.1M
    {
357
23.1M
        return m_unexpected;
358
23.1M
    }
scn::v3::unexpected<scn::v3::impl::eof_error>::error() &
Line
Count
Source
356
787k
    {
357
787k
        return m_unexpected;
358
787k
    }
scn::v3::unexpected<scn::v3::impl::parse_error>::error() &
Line
Count
Source
356
25.5M
    {
357
25.5M
        return m_unexpected;
358
25.5M
    }
scn::v3::unexpected<scn::v3::impl::parse_error::code>::error() &
Line
Count
Source
356
35.8M
    {
357
35.8M
        return m_unexpected;
358
35.8M
    }
359
    SCN_NODISCARD constexpr const E& error() const& noexcept
360
0
    {
361
0
        return m_unexpected;
362
0
    }
Unexecuted instantiation: scn::v3::unexpected<scn::v3::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v3::unexpected<scn::v3::impl::parse_error>::error() const &
363
364
    SCN_NODISCARD constexpr E&& error() && noexcept
365
    {
366
        return std::move(m_unexpected);
367
    }
368
    SCN_NODISCARD constexpr const E&& error() const&& noexcept
369
    {
370
        return std::move(m_unexpected);
371
    }
372
373
private:
374
    E m_unexpected;
375
};
376
377
template <typename E>
378
unexpected(E) -> unexpected<E>;
379
380
struct unexpect_t {};
381
inline constexpr unexpect_t unexpect{};
382
383
namespace detail {
384
template <typename T, typename... Args>
385
T* construct_at(T* p, Args&&... args) noexcept(
386
    std::is_nothrow_constructible_v<T, Args...>)
387
40.3M
{
388
40.3M
    return ::new (const_cast<void*>(static_cast<const volatile void*>(p)))
389
40.3M
        T(std::forward<Args>(args)...);
390
40.3M
}
scn::v3::unexpected<scn::v3::scan_error>* scn::v3::detail::construct_at<scn::v3::unexpected<scn::v3::scan_error>, std::__1::in_place_t const&, scn::v3::scan_error>(scn::v3::unexpected<scn::v3::scan_error>*, std::__1::in_place_t const&, scn::v3::scan_error&&)
Line
Count
Source
387
218k
{
388
218k
    return ::new (const_cast<void*>(static_cast<const volatile void*>(p)))
389
218k
        T(std::forward<Args>(args)...);
390
218k
}
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v3::detail::construct_at<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
387
151k
{
388
151k
    return ::new (const_cast<void*>(static_cast<const volatile void*>(p)))
389
151k
        T(std::forward<Args>(args)...);
390
151k
}
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >* scn::v3::detail::construct_at<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > > >(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >*, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&&)
Line
Count
Source
387
842
{
388
842
    return ::new (const_cast<void*>(static_cast<const volatile void*>(p)))
389
842
        T(std::forward<Args>(args)...);
390
842
}
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v3::detail::construct_at<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
387
60
{
388
60
    return ::new (const_cast<void*>(static_cast<const volatile void*>(p)))
389
60
        T(std::forward<Args>(args)...);
390
60
}
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >* scn::v3::detail::construct_at<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > > >(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >*, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&&)
Line
Count
Source
387
19.6M
{
388
19.6M
    return ::new (const_cast<void*>(static_cast<const volatile void*>(p)))
389
19.6M
        T(std::forward<Args>(args)...);
390
19.6M
}
Unexecuted instantiation: std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v3::detail::construct_at<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*, std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v3::detail::construct_at<std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*, std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
387
311k
{
388
311k
    return ::new (const_cast<void*>(static_cast<const volatile void*>(p)))
389
311k
        T(std::forward<Args>(args)...);
390
311k
}
Unexecuted instantiation: std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v3::detail::construct_at<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*, std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v3::detail::construct_at<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*, std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
387
309k
{
388
309k
    return ::new (const_cast<void*>(static_cast<const volatile void*>(p)))
389
309k
        T(std::forward<Args>(args)...);
390
309k
}
Unexecuted instantiation: std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v3::detail::construct_at<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*, std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v3::detail::construct_at<std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*, std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
387
724
{
388
724
    return ::new (const_cast<void*>(static_cast<const volatile void*>(p)))
389
724
        T(std::forward<Args>(args)...);
390
724
}
Unexecuted instantiation: std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v3::detail::construct_at<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*, std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v3::detail::construct_at<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*, std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
387
724
{
388
724
    return ::new (const_cast<void*>(static_cast<const volatile void*>(p)))
389
724
        T(std::forward<Args>(args)...);
390
724
}
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v3::detail::construct_at<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
387
152k
{
388
152k
    return ::new (const_cast<void*>(static_cast<const volatile void*>(p)))
389
152k
        T(std::forward<Args>(args)...);
390
152k
}
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >* scn::v3::detail::construct_at<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > > >(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >*, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&&)
Line
Count
Source
387
19.6M
{
388
19.6M
    return ::new (const_cast<void*>(static_cast<const volatile void*>(p)))
389
19.6M
        T(std::forward<Args>(args)...);
390
19.6M
}
391
template <typename T>
392
void destroy_at(T* p) noexcept
393
40.3M
{
394
40.3M
    if constexpr (std::is_array_v<T>) {
395
40.3M
        for (auto& elem : *p) {
396
40.3M
            scn::detail::destroy_at(&elem);
397
40.3M
        }
398
40.3M
    }
399
40.3M
    else {
400
40.3M
        p->~T();
401
40.3M
    }
402
40.3M
}
void scn::v3::detail::destroy_at<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
Line
Count
Source
393
151k
{
394
151k
    if constexpr (std::is_array_v<T>) {
395
151k
        for (auto& elem : *p) {
396
151k
            scn::detail::destroy_at(&elem);
397
151k
        }
398
151k
    }
399
151k
    else {
400
151k
        p->~T();
401
151k
    }
402
151k
}
void scn::v3::detail::destroy_at<scn::v3::unexpected<scn::v3::scan_error> >(scn::v3::unexpected<scn::v3::scan_error>*)
Line
Count
Source
393
218k
{
394
218k
    if constexpr (std::is_array_v<T>) {
395
218k
        for (auto& elem : *p) {
396
218k
            scn::detail::destroy_at(&elem);
397
218k
        }
398
218k
    }
399
218k
    else {
400
218k
        p->~T();
401
218k
    }
402
218k
}
void scn::v3::detail::destroy_at<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > > >(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >*)
Line
Count
Source
393
842
{
394
842
    if constexpr (std::is_array_v<T>) {
395
842
        for (auto& elem : *p) {
396
842
            scn::detail::destroy_at(&elem);
397
842
        }
398
842
    }
399
842
    else {
400
842
        p->~T();
401
842
    }
402
842
}
void scn::v3::detail::destroy_at<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
Line
Count
Source
393
60
{
394
60
    if constexpr (std::is_array_v<T>) {
395
60
        for (auto& elem : *p) {
396
60
            scn::detail::destroy_at(&elem);
397
60
        }
398
60
    }
399
60
    else {
400
60
        p->~T();
401
60
    }
402
60
}
void scn::v3::detail::destroy_at<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > > >(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >*)
Line
Count
Source
393
19.6M
{
394
19.6M
    if constexpr (std::is_array_v<T>) {
395
19.6M
        for (auto& elem : *p) {
396
19.6M
            scn::detail::destroy_at(&elem);
397
19.6M
        }
398
19.6M
    }
399
19.6M
    else {
400
19.6M
        p->~T();
401
19.6M
    }
402
19.6M
}
Unexecuted instantiation: void scn::v3::detail::destroy_at<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
void scn::v3::detail::destroy_at<std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
Line
Count
Source
393
311k
{
394
311k
    if constexpr (std::is_array_v<T>) {
395
311k
        for (auto& elem : *p) {
396
311k
            scn::detail::destroy_at(&elem);
397
311k
        }
398
311k
    }
399
311k
    else {
400
311k
        p->~T();
401
311k
    }
402
311k
}
Unexecuted instantiation: void scn::v3::detail::destroy_at<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
void scn::v3::detail::destroy_at<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
Line
Count
Source
393
309k
{
394
309k
    if constexpr (std::is_array_v<T>) {
395
309k
        for (auto& elem : *p) {
396
309k
            scn::detail::destroy_at(&elem);
397
309k
        }
398
309k
    }
399
309k
    else {
400
309k
        p->~T();
401
309k
    }
402
309k
}
Unexecuted instantiation: void scn::v3::detail::destroy_at<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
void scn::v3::detail::destroy_at<std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
Line
Count
Source
393
724
{
394
724
    if constexpr (std::is_array_v<T>) {
395
724
        for (auto& elem : *p) {
396
724
            scn::detail::destroy_at(&elem);
397
724
        }
398
724
    }
399
724
    else {
400
724
        p->~T();
401
724
    }
402
724
}
Unexecuted instantiation: void scn::v3::detail::destroy_at<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
void scn::v3::detail::destroy_at<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
Line
Count
Source
393
724
{
394
724
    if constexpr (std::is_array_v<T>) {
395
724
        for (auto& elem : *p) {
396
724
            scn::detail::destroy_at(&elem);
397
724
        }
398
724
    }
399
724
    else {
400
724
        p->~T();
401
724
    }
402
724
}
void scn::v3::detail::destroy_at<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
Line
Count
Source
393
152k
{
394
152k
    if constexpr (std::is_array_v<T>) {
395
152k
        for (auto& elem : *p) {
396
152k
            scn::detail::destroy_at(&elem);
397
152k
        }
398
152k
    }
399
152k
    else {
400
152k
        p->~T();
401
152k
    }
402
152k
}
void scn::v3::detail::destroy_at<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > > >(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >*)
Line
Count
Source
393
19.6M
{
394
19.6M
    if constexpr (std::is_array_v<T>) {
395
19.6M
        for (auto& elem : *p) {
396
19.6M
            scn::detail::destroy_at(&elem);
397
19.6M
        }
398
19.6M
    }
399
19.6M
    else {
400
19.6M
        p->~T();
401
19.6M
    }
402
19.6M
}
403
404
struct deferred_init_tag_t {};
405
static constexpr deferred_init_tag_t deferred_init_tag{};
406
407
template <typename T,
408
          typename E,
409
          bool IsTriviallyDestructible = std::is_trivially_destructible_v<T> &&
410
                                         std::is_trivially_destructible_v<E>>
411
struct expected_storage_base;
412
413
template <typename T, typename E>
414
struct SCN_TRIVIAL_ABI expected_storage_base<T, E, true> {
415
    constexpr expected_storage_base() noexcept(
416
        std::is_nothrow_default_constructible_v<T>)
417
        : m_value(T{}), m_has_value(true)
418
    {
419
    }
420
421
    constexpr explicit expected_storage_base(deferred_init_tag_t) noexcept
422
        : m_deferred_init(), m_has_value(false)
423
    {
424
    }
425
426
    template <typename... Args,
427
              typename = std::enable_if_t<std::is_constructible_v<T, Args...>>>
428
    constexpr explicit expected_storage_base(
429
        std::in_place_t,
430
        Args&&... args) noexcept(std::is_nothrow_constructible_v<T, Args...>)
431
        : m_value(std::forward<Args>(args)...), m_has_value(true)
432
564M
    {
433
564M
    }
scn::v3::detail::expected_storage_base<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, void>(std::__1::in_place_t, scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>&&)
Line
Count
Source
432
4.56M
    {
433
4.56M
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, char>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, char>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, char>&&)
Line
Count
Source
432
146
    {
433
146
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, int>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, int>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, int>&&)
Line
Count
Source
432
382k
    {
433
382k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>&&)
Line
Count
Source
432
324k
    {
433
324k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, double>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, double>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, double>&&)
Line
Count
Source
432
768k
    {
433
768k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, bool>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, bool>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, bool>&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, void*>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, void*>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, void*>&&)
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >&&)
Line
Count
Source
432
151k
    {
433
151k
    }
scn::v3::detail::expected_storage_base<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void>(std::__1::in_place_t, scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>&&)
Line
Count
Source
432
39.2M
    {
433
39.2M
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t>&&)
Line
Count
Source
432
60
    {
433
60
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>&&)
Line
Count
Source
432
711
    {
433
711
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>&&)
Line
Count
Source
432
564
    {
433
564
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>&&)
Line
Count
Source
432
15.6k
    {
433
15.6k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, bool>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, bool>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, bool>&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void*>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void*>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void*>&&)
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >&&)
Line
Count
Source
432
19.6M
    {
433
19.6M
    }
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::scan_error, true>::expected_storage_base<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, void>(std::__1::in_place_t, scn::v3::detail::basic_scan_buffer<char>::forward_iterator&&)
Line
Count
Source
432
15.1M
    {
433
15.1M
    }
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::scan_error, true>::expected_storage_base<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, void>(std::__1::in_place_t, scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator&&)
Line
Count
Source
432
39.9M
    {
433
39.9M
    }
scn::v3::detail::expected_storage_base<char const*, scn::v3::scan_error, true>::expected_storage_base<char const*, void>(std::__1::in_place_t, char const*&&)
Line
Count
Source
432
22.0M
    {
433
22.0M
    }
scn::v3::detail::expected_storage_base<wchar_t const*, scn::v3::scan_error, true>::expected_storage_base<wchar_t const*, void>(std::__1::in_place_t, wchar_t const*&&)
Line
Count
Source
432
79.9M
    {
433
79.9M
    }
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, void>(std::__1::in_place_t, scn::v3::detail::basic_scan_buffer<char>::forward_iterator&&)
Line
Count
Source
432
22.2M
    {
433
22.2M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, void>(std::__1::in_place_t, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, void>(std::__1::in_place_t, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>&&)
scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, long>, scn::v3::scan_error, true>::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, long>, void>(std::__1::in_place_t, std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, long>&&)
Line
Count
Source
432
6.62M
    {
433
6.62M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error, true>::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>&, void>(std::__1::in_place_t, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error, true>::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, void>(std::__1::in_place_t, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, void>(std::__1::in_place_t, scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::scan_error, true>::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, void>(std::__1::in_place_t, scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >&&)
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::parse_error, true>::expected_storage_base<scn::v3::detail::basic_scan_buffer<char>::forward_iterator&, void>(std::__1::in_place_t, scn::v3::detail::basic_scan_buffer<char>::forward_iterator&)
Line
Count
Source
432
2.09M
    {
433
2.09M
    }
scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>&&)
Line
Count
Source
432
4.74M
    {
433
4.74M
    }
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::parse_error, true>::expected_storage_base<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, void>(std::__1::in_place_t, scn::v3::detail::basic_scan_buffer<char>::forward_iterator&&)
Line
Count
Source
432
12.5M
    {
433
12.5M
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, void>(std::__1::in_place_t, scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>&&)
Line
Count
Source
432
2.16M
    {
433
2.16M
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, void>(std::__1::in_place_t, scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>&&)
Line
Count
Source
432
2.16M
    {
433
2.16M
    }
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::scan_error, true>::expected_storage_base<scn::v3::detail::basic_scan_buffer<char>::forward_iterator&, void>(std::__1::in_place_t, scn::v3::detail::basic_scan_buffer<char>::forward_iterator&)
Line
Count
Source
432
3.36M
    {
433
3.36M
    }
scn::v3::detail::expected_storage_base<char const*, scn::v3::impl::eof_error, true>::expected_storage_base<char const*, void>(std::__1::in_place_t, char const*&&)
Line
Count
Source
432
11.0M
    {
433
11.0M
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, void>(std::__1::in_place_t, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&&)
Line
Count
Source
432
8.06k
    {
433
8.06k
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, void>(std::__1::in_place_t, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&&)
Line
Count
Source
432
5.05k
    {
433
5.05k
    }
scn::v3::detail::expected_storage_base<std::__1::pair<char const*, long>, scn::v3::scan_error, true>::expected_storage_base<std::__1::pair<char const*, long>, void>(std::__1::in_place_t, std::__1::pair<char const*, long>&&)
Line
Count
Source
432
6.67M
    {
433
6.67M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::parse_error, true>::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&, void>(std::__1::in_place_t, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&)
scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>&&)
Line
Count
Source
432
1.51k
    {
433
1.51k
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::parse_error, true>::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, void>(std::__1::in_place_t, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&&)
Line
Count
Source
432
2.09k
    {
433
2.09k
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, void>(std::__1::in_place_t, scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >&&)
Line
Count
Source
432
1.14k
    {
433
1.14k
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::scan_error, true>::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, void>(std::__1::in_place_t, scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >&&)
Line
Count
Source
432
1.14k
    {
433
1.14k
    }
scn::v3::detail::expected_storage_base<char const*, scn::v3::impl::parse_error, true>::expected_storage_base<char const*&, void>(std::__1::in_place_t, char const*&)
Line
Count
Source
432
1.64M
    {
433
1.64M
    }
scn::v3::detail::expected_storage_base<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::expected_storage_base<std::__1::pair<char const*, scn::v3::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<char const*, scn::v3::impl::sign_type>&&)
Line
Count
Source
432
4.58M
    {
433
4.58M
    }
scn::v3::detail::expected_storage_base<char const*, scn::v3::impl::parse_error, true>::expected_storage_base<char const*, void>(std::__1::in_place_t, char const*&&)
Line
Count
Source
432
1.01M
    {
433
1.01M
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<char const*>, void>(std::__1::in_place_t, scn::v3::impl::parse_integer_prefix_result<char const*>&&)
Line
Count
Source
432
2.16M
    {
433
2.16M
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<char const*>, void>(std::__1::in_place_t, scn::v3::impl::parse_integer_prefix_result<char const*>&&)
Line
Count
Source
432
2.16M
    {
433
2.16M
    }
scn::v3::detail::expected_storage_base<char const*, scn::v3::scan_error, true>::expected_storage_base<char const*&, void>(std::__1::in_place_t, char const*&)
Line
Count
Source
432
3.38M
    {
433
3.38M
    }
scn::v3::detail::expected_storage_base<long, scn::v3::scan_error, true>::expected_storage_base<long, void>(std::__1::in_place_t, long&&)
Line
Count
Source
432
76.8M
    {
433
76.8M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>&, void>(std::__1::in_place_t, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>&)
scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>&&)
Line
Count
Source
432
2.33M
    {
433
2.33M
    }
scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>&&)
Line
Count
Source
432
364
    {
433
364
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&, void>(std::__1::in_place_t, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&)
scn::v3::detail::expected_storage_base<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::expected_storage_base<std::__1::pair<char const*, scn::v3::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<char const*, scn::v3::impl::sign_type>&&)
Line
Count
Source
432
2.34M
    {
433
2.34M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> const&, void>(std::__1::in_place_t, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> const&)
scn::v3::detail::expected_storage_base<std::__1::regex_constants::syntax_option_type, scn::v3::scan_error, true>::expected_storage_base<std::__1::regex_constants::syntax_option_type, void>(std::__1::in_place_t, std::__1::regex_constants::syntax_option_type&&)
Line
Count
Source
432
10.3k
    {
433
10.3k
    }
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::scan_error, true>::expected_storage_base<scn::v3::detail::basic_scan_buffer<char>::forward_iterator const&, void>(std::__1::in_place_t, scn::v3::detail::basic_scan_buffer<char>::forward_iterator const&)
Line
Count
Source
432
826
    {
433
826
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> const&, void>(std::__1::in_place_t, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> const&)
Line
Count
Source
432
762
    {
433
762
    }
scn::v3::detail::expected_storage_base<char const*, scn::v3::scan_error, true>::expected_storage_base<char const* const&, void>(std::__1::in_place_t, char const* const&)
Line
Count
Source
432
4.07k
    {
433
4.07k
    }
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, void>(std::__1::in_place_t, scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator&&)
Line
Count
Source
432
21.9M
    {
433
21.9M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, void>(std::__1::in_place_t, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, void>(std::__1::in_place_t, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>&&)
scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>, scn::v3::scan_error, true>::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>, void>(std::__1::in_place_t, std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>&&)
Line
Count
Source
432
16.2M
    {
433
16.2M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error, true>::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>&, void>(std::__1::in_place_t, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error, true>::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, void>(std::__1::in_place_t, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, void>(std::__1::in_place_t, scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::scan_error, true>::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, void>(std::__1::in_place_t, scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >&&)
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::parse_error, true>::expected_storage_base<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator&, void>(std::__1::in_place_t, scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator&)
Line
Count
Source
432
5.62k
    {
433
5.62k
    }
scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>&&)
Line
Count
Source
432
631k
    {
433
631k
    }
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::parse_error, true>::expected_storage_base<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, void>(std::__1::in_place_t, scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator&&)
Line
Count
Source
432
968k
    {
433
968k
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, void>(std::__1::in_place_t, scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>&&)
Line
Count
Source
432
351k
    {
433
351k
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, void>(std::__1::in_place_t, scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>&&)
Line
Count
Source
432
351k
    {
433
351k
    }
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::scan_error, true>::expected_storage_base<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator&, void>(std::__1::in_place_t, scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator&)
Line
Count
Source
432
7.87M
    {
433
7.87M
    }
scn::v3::detail::expected_storage_base<wchar_t const*, scn::v3::impl::eof_error, true>::expected_storage_base<wchar_t const*, void>(std::__1::in_place_t, wchar_t const*&&)
Line
Count
Source
432
41.7M
    {
433
41.7M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, void>(std::__1::in_place_t, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, void>(std::__1::in_place_t, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&&)
scn::v3::detail::expected_storage_base<std::__1::pair<wchar_t const*, long>, scn::v3::scan_error, true>::expected_storage_base<std::__1::pair<wchar_t const*, long>, void>(std::__1::in_place_t, std::__1::pair<wchar_t const*, long>&&)
Line
Count
Source
432
31.9M
    {
433
31.9M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::parse_error, true>::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&, void>(std::__1::in_place_t, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::parse_error, true>::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, void>(std::__1::in_place_t, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, void>(std::__1::in_place_t, scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::scan_error, true>::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, void>(std::__1::in_place_t, scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >&&)
scn::v3::detail::expected_storage_base<wchar_t const*, scn::v3::impl::parse_error, true>::expected_storage_base<wchar_t const*&, void>(std::__1::in_place_t, wchar_t const*&)
Line
Count
Source
432
4.17k
    {
433
4.17k
    }
scn::v3::detail::expected_storage_base<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::expected_storage_base<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>&&)
Line
Count
Source
432
668k
    {
433
668k
    }
scn::v3::detail::expected_storage_base<wchar_t const*, scn::v3::impl::parse_error, true>::expected_storage_base<wchar_t const*, void>(std::__1::in_place_t, wchar_t const*&&)
Line
Count
Source
432
990k
    {
433
990k
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, void>(std::__1::in_place_t, scn::v3::impl::parse_integer_prefix_result<wchar_t const*>&&)
Line
Count
Source
432
379k
    {
433
379k
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, void>(std::__1::in_place_t, scn::v3::impl::parse_integer_prefix_result<wchar_t const*>&&)
Line
Count
Source
432
379k
    {
433
379k
    }
scn::v3::detail::expected_storage_base<wchar_t const*, scn::v3::scan_error, true>::expected_storage_base<wchar_t const*&, void>(std::__1::in_place_t, wchar_t const*&)
Line
Count
Source
432
15.7M
    {
433
15.7M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>&, void>(std::__1::in_place_t, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>&)
scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>&&)
Line
Count
Source
432
277k
    {
433
277k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&, void>(std::__1::in_place_t, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&)
scn::v3::detail::expected_storage_base<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::expected_storage_base<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>&&)
Line
Count
Source
432
287k
    {
433
287k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> const&, void>(std::__1::in_place_t, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> const&)
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::scan_error, true>::expected_storage_base<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator const&, void>(std::__1::in_place_t, scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator const&)
Line
Count
Source
432
34
    {
433
34
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> const&, void>(std::__1::in_place_t, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> const&)
scn::v3::detail::expected_storage_base<wchar_t const*, scn::v3::scan_error, true>::expected_storage_base<wchar_t const* const&, void>(std::__1::in_place_t, wchar_t const* const&)
Line
Count
Source
432
68
    {
433
68
    }
scn::v3::detail::expected_storage_base<long, scn::v3::scan_error, true>::expected_storage_base<int, void>(std::__1::in_place_t, int&&)
Line
Count
Source
432
257k
    {
433
257k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<wchar_t, scn::v3::scan_error, true>::expected_storage_base<wchar_t, void>(std::__1::in_place_t, wchar_t&&)
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, signed char>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, signed char>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, signed char>&&)
Line
Count
Source
432
296k
    {
433
296k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned char>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned char>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned char>&&)
Line
Count
Source
432
283k
    {
433
283k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long long>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long long>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long long>&&)
Line
Count
Source
432
390k
    {
433
390k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned long long>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned long long>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned long long>&&)
Line
Count
Source
432
328k
    {
433
328k
    }
scn::v3::detail::expected_storage_base<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, scn::v3::scan_error, true>::expected_storage_base<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, void>(std::__1::in_place_t, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >&&)
Line
Count
Source
432
4.41M
    {
433
4.41M
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, signed char>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, signed char>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, signed char>&&)
Line
Count
Source
432
298k
    {
433
298k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned char>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned char>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned char>&&)
Line
Count
Source
432
285k
    {
433
285k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, int>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, int>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, int>&&)
Line
Count
Source
432
383k
    {
433
383k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned int>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned int>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned int>&&)
Line
Count
Source
432
326k
    {
433
326k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long long>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long long>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long long>&&)
Line
Count
Source
432
390k
    {
433
390k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned long long>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned long long>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned long long>&&)
Line
Count
Source
432
330k
    {
433
330k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, signed char>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, signed char>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, signed char>&&)
Line
Count
Source
432
595
    {
433
595
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned char>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned char>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned char>&&)
Line
Count
Source
432
500
    {
433
500
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long long>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long long>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long long>&&)
Line
Count
Source
432
864
    {
433
864
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned long long>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned long long>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned long long>&&)
Line
Count
Source
432
694
    {
433
694
    }
scn::v3::detail::expected_storage_base<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, scn::v3::scan_error, true>::expected_storage_base<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, void>(std::__1::in_place_t, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >&&)
Line
Count
Source
432
19.6M
    {
433
19.6M
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, signed char>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, signed char>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, signed char>&&)
Line
Count
Source
432
595
    {
433
595
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned char>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned char>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned char>&&)
Line
Count
Source
432
500
    {
433
500
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, int>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, int>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, int>&&)
Line
Count
Source
432
711
    {
433
711
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned int>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned int>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned int>&&)
Line
Count
Source
432
564
    {
433
564
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long long>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long long>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long long>&&)
Line
Count
Source
432
864
    {
433
864
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned long long>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned long long>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned long long>&&)
Line
Count
Source
432
694
    {
433
694
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, float>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, float>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, float>&&)
Line
Count
Source
432
707k
    {
433
707k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long double>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long double>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long double>&&)
Line
Count
Source
432
779k
    {
433
779k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, float>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, float>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, float>&&)
Line
Count
Source
432
706k
    {
433
706k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, double>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, double>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, double>&&)
Line
Count
Source
432
766k
    {
433
766k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long double>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long double>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long double>&&)
Line
Count
Source
432
776k
    {
433
776k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, float>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, float>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, float>&&)
Line
Count
Source
432
15.5k
    {
433
15.5k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long double>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long double>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long double>&&)
Line
Count
Source
432
15.8k
    {
433
15.8k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, float>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, float>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, float>&&)
Line
Count
Source
432
15.5k
    {
433
15.5k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, double>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, double>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, double>&&)
Line
Count
Source
432
15.6k
    {
433
15.6k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long double>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long double>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long double>&&)
Line
Count
Source
432
15.8k
    {
433
15.8k
    }
434
435
    template <typename... Args,
436
              typename = std::enable_if_t<std::is_constructible_v<E, Args...>>>
437
    constexpr explicit expected_storage_base(
438
        unexpect_t,
439
        Args&&... args) noexcept(std::is_nothrow_constructible_v<E, Args...>)
440
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
441
          m_has_value(false)
442
60.0M
    {
443
60.0M
    }
scn::v3::detail::expected_storage_base<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
454k
    {
443
454k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, char>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
8.22k
    {
443
8.22k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, int>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
49.2k
    {
443
49.2k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
49.2k
    {
443
49.2k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, double>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
47.1k
    {
443
47.1k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, bool>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
8.37k
    {
443
8.37k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, void*>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
8.37k
    {
443
8.37k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
17.5k
    {
443
17.5k
    }
scn::v3::detail::expected_storage_base<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
913k
    {
443
913k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
16.6k
    {
443
16.6k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
98.4k
    {
443
98.4k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
98.4k
    {
443
98.4k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
94.3k
    {
443
94.3k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, bool>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
16.7k
    {
443
16.7k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void*>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
16.7k
    {
443
16.7k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
36.6k
    {
443
36.6k
    }
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
2.99M
    {
443
2.99M
    }
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
2.10M
    {
443
2.10M
    }
scn::v3::detail::expected_storage_base<char const*, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
3.14M
    {
443
3.14M
    }
scn::v3::detail::expected_storage_base<wchar_t const*, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
2.00M
    {
443
2.00M
    }
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::eof_error, void>(scn::v3::unexpect_t, scn::v3::impl::eof_error&&)
Line
Count
Source
442
156k
    {
443
156k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::eof_error, void>(scn::v3::unexpect_t, scn::v3::impl::eof_error&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, long>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
41.8k
    {
443
41.8k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error, true>::expected_storage_base<scn::v3::impl::parse_error, void>(scn::v3::unexpect_t, scn::v3::impl::parse_error&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error, true>::expected_storage_base<scn::v3::impl::parse_error::code, void>(scn::v3::unexpect_t, scn::v3::impl::parse_error::code&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::eof_error, void>(scn::v3::unexpect_t, scn::v3::impl::eof_error&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::eof_error, void>(scn::v3::unexpect_t, scn::v3::impl::eof_error&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::parse_error, true>::expected_storage_base<scn::v3::impl::parse_error, void>(scn::v3::unexpect_t, scn::v3::impl::parse_error&&)
Line
Count
Source
442
2.47M
    {
443
2.47M
    }
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::parse_error, true>::expected_storage_base<scn::v3::impl::parse_error::code, void>(scn::v3::unexpect_t, scn::v3::impl::parse_error::code&&)
Line
Count
Source
442
17.8M
    {
443
17.8M
    }
scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::eof_error, void>(scn::v3::unexpect_t, scn::v3::impl::eof_error&&)
Line
Count
Source
442
491
    {
443
491
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::eof_error, void>(scn::v3::unexpect_t, scn::v3::impl::eof_error&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
scn::v3::detail::expected_storage_base<char const*, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::eof_error, void>(scn::v3::unexpect_t, scn::v3::impl::eof_error&&)
Line
Count
Source
442
61.2k
    {
443
61.2k
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::eof_error, void>(scn::v3::unexpect_t, scn::v3::impl::eof_error&&)
Line
Count
Source
442
376
    {
443
376
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
6.92k
    {
443
6.92k
    }
scn::v3::detail::expected_storage_base<std::__1::pair<char const*, long>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
38.3k
    {
443
38.3k
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::parse_error, true>::expected_storage_base<scn::v3::impl::parse_error, void>(scn::v3::unexpect_t, scn::v3::impl::parse_error&&)
Line
Count
Source
442
792
    {
443
792
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::parse_error, true>::expected_storage_base<scn::v3::impl::parse_error::code, void>(scn::v3::unexpect_t, scn::v3::impl::parse_error::code&&)
Line
Count
Source
442
5.93k
    {
443
5.93k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::eof_error, void>(scn::v3::unexpect_t, scn::v3::impl::eof_error&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::eof_error, void>(scn::v3::unexpect_t, scn::v3::impl::eof_error&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
scn::v3::detail::expected_storage_base<char const*, scn::v3::impl::parse_error, true>::expected_storage_base<scn::v3::impl::parse_error, void>(scn::v3::unexpect_t, scn::v3::impl::parse_error&&)
Line
Count
Source
442
2.39M
    {
443
2.39M
    }
scn::v3::detail::expected_storage_base<char const*, scn::v3::impl::parse_error, true>::expected_storage_base<scn::v3::impl::parse_error::code, void>(scn::v3::unexpect_t, scn::v3::impl::parse_error::code&&)
Line
Count
Source
442
13.6M
    {
443
13.6M
    }
scn::v3::detail::expected_storage_base<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::eof_error, void>(scn::v3::unexpect_t, scn::v3::impl::eof_error&&)
Line
Count
Source
442
156
    {
443
156
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::eof_error, void>(scn::v3::unexpect_t, scn::v3::impl::eof_error&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
scn::v3::detail::expected_storage_base<long, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
2.86M
    {
443
2.86M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::regex_constants::syntax_option_type, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::eof_error, void>(scn::v3::unexpect_t, scn::v3::impl::eof_error&&)
Line
Count
Source
442
85.4k
    {
443
85.4k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::eof_error, void>(scn::v3::unexpect_t, scn::v3::impl::eof_error&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
5.18k
    {
443
5.18k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error, true>::expected_storage_base<scn::v3::impl::parse_error, void>(scn::v3::unexpect_t, scn::v3::impl::parse_error&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error, true>::expected_storage_base<scn::v3::impl::parse_error::code, void>(scn::v3::unexpect_t, scn::v3::impl::parse_error::code&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::eof_error, void>(scn::v3::unexpect_t, scn::v3::impl::eof_error&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::eof_error, void>(scn::v3::unexpect_t, scn::v3::impl::eof_error&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::parse_error, true>::expected_storage_base<scn::v3::impl::parse_error, void>(scn::v3::unexpect_t, scn::v3::impl::parse_error&&)
Line
Count
Source
442
430k
    {
443
430k
    }
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::parse_error, true>::expected_storage_base<scn::v3::impl::parse_error::code, void>(scn::v3::unexpect_t, scn::v3::impl::parse_error::code&&)
Line
Count
Source
442
2.39M
    {
443
2.39M
    }
scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::eof_error, void>(scn::v3::unexpect_t, scn::v3::impl::eof_error&&)
Line
Count
Source
442
27
    {
443
27
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::eof_error, void>(scn::v3::unexpect_t, scn::v3::impl::eof_error&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
scn::v3::detail::expected_storage_base<wchar_t const*, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::eof_error, void>(scn::v3::unexpect_t, scn::v3::impl::eof_error&&)
Line
Count
Source
442
89.4k
    {
443
89.4k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::eof_error, void>(scn::v3::unexpect_t, scn::v3::impl::eof_error&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
scn::v3::detail::expected_storage_base<std::__1::pair<wchar_t const*, long>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
6.88k
    {
443
6.88k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::parse_error, true>::expected_storage_base<scn::v3::impl::parse_error, void>(scn::v3::unexpect_t, scn::v3::impl::parse_error&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::parse_error, true>::expected_storage_base<scn::v3::impl::parse_error::code, void>(scn::v3::unexpect_t, scn::v3::impl::parse_error::code&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::eof_error, void>(scn::v3::unexpect_t, scn::v3::impl::eof_error&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::eof_error, void>(scn::v3::unexpect_t, scn::v3::impl::eof_error&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
scn::v3::detail::expected_storage_base<wchar_t const*, scn::v3::impl::parse_error, true>::expected_storage_base<scn::v3::impl::parse_error, void>(scn::v3::unexpect_t, scn::v3::impl::parse_error&&)
Line
Count
Source
442
439k
    {
443
439k
    }
scn::v3::detail::expected_storage_base<wchar_t const*, scn::v3::impl::parse_error, true>::expected_storage_base<scn::v3::impl::parse_error::code, void>(scn::v3::unexpect_t, scn::v3::impl::parse_error::code&&)
Line
Count
Source
442
1.99M
    {
443
1.99M
    }
scn::v3::detail::expected_storage_base<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::eof_error, void>(scn::v3::unexpect_t, scn::v3::impl::eof_error&&)
Line
Count
Source
442
12
    {
443
12
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::eof_error, void>(scn::v3::unexpect_t, scn::v3::impl::eof_error&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, signed char>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
40.8k
    {
443
40.8k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned char>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
40.8k
    {
443
40.8k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long long>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
40.8k
    {
443
40.8k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned long long>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
40.8k
    {
443
40.8k
    }
scn::v3::detail::expected_storage_base<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
371k
    {
443
371k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, signed char>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
40.8k
    {
443
40.8k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned char>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
40.8k
    {
443
40.8k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, int>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
40.8k
    {
443
40.8k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned int>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
40.8k
    {
443
40.8k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long long>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
40.8k
    {
443
40.8k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned long long>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
40.8k
    {
443
40.8k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, signed char>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
81.7k
    {
443
81.7k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned char>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
81.7k
    {
443
81.7k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long long>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
81.7k
    {
443
81.7k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned long long>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
81.7k
    {
443
81.7k
    }
scn::v3::detail::expected_storage_base<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
743k
    {
443
743k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, signed char>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
81.7k
    {
443
81.7k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned char>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
81.7k
    {
443
81.7k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, int>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
81.7k
    {
443
81.7k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned int>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
81.7k
    {
443
81.7k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long long>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
81.7k
    {
443
81.7k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned long long>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
81.7k
    {
443
81.7k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, float>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
38.8k
    {
443
38.8k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long double>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
38.8k
    {
443
38.8k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, float>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
38.8k
    {
443
38.8k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, double>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
38.8k
    {
443
38.8k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long double>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
38.8k
    {
443
38.8k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, float>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
77.6k
    {
443
77.6k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long double>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
77.6k
    {
443
77.6k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, float>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
77.6k
    {
443
77.6k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, double>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
77.6k
    {
443
77.6k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long double>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
77.6k
    {
443
77.6k
    }
444
445
    constexpr T& get_value() & noexcept
446
572M
    {
447
572M
        return m_value;
448
572M
    }
scn::v3::detail::expected_storage_base<long, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
101M
    {
447
101M
        return m_value;
448
101M
    }
scn::v3::detail::expected_storage_base<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
4.56M
    {
447
4.56M
        return m_value;
448
4.56M
    }
scn::v3::detail::expected_storage_base<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
39.2M
    {
447
39.2M
        return m_value;
448
39.2M
    }
scn::v3::detail::expected_storage_base<std::__1::regex_constants::syntax_option_type, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
10.3k
    {
447
10.3k
        return m_value;
448
10.3k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<wchar_t, scn::v3::scan_error, true>::get_value() &
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::eof_error, true>::get_value() &
Line
Count
Source
446
14.5M
    {
447
14.5M
        return m_value;
448
14.5M
    }
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::eof_error, true>::get_value() &
Line
Count
Source
446
21.1M
    {
447
21.1M
        return m_value;
448
21.1M
    }
scn::v3::detail::expected_storage_base<char const*, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
23.1M
    {
447
23.1M
        return m_value;
448
23.1M
    }
scn::v3::detail::expected_storage_base<wchar_t const*, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
95.4M
    {
447
95.4M
        return m_value;
448
95.4M
    }
scn::v3::detail::expected_storage_base<char const*, scn::v3::impl::eof_error, true>::get_value() &
Line
Count
Source
446
6.20M
    {
447
6.20M
        return m_value;
448
6.20M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error, true>::get_value() &
scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, long>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
6.62M
    {
447
6.62M
        return m_value;
448
6.62M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error, true>::get_value() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error, true>::get_value() &
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::parse_error, true>::get_value() &
Line
Count
Source
446
17.1M
    {
447
17.1M
        return m_value;
448
17.1M
    }
scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::get_value() &
Line
Count
Source
446
4.74M
    {
447
4.74M
        return m_value;
448
4.74M
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::impl::eof_error, true>::get_value() &
Line
Count
Source
446
2.16M
    {
447
2.16M
        return m_value;
448
2.16M
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
2.16M
    {
447
2.16M
        return m_value;
448
2.16M
    }
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
16.2M
    {
447
16.2M
        return m_value;
448
16.2M
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::eof_error, true>::get_value() &
Line
Count
Source
446
5.79k
    {
447
5.79k
        return m_value;
448
5.79k
    }
scn::v3::detail::expected_storage_base<std::__1::pair<char const*, long>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
6.67M
    {
447
6.67M
        return m_value;
448
6.67M
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::parse_error, true>::get_value() &
Line
Count
Source
446
2.09k
    {
447
2.09k
        return m_value;
448
2.09k
    }
scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::get_value() &
Line
Count
Source
446
1.51k
    {
447
1.51k
        return m_value;
448
1.51k
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::impl::eof_error, true>::get_value() &
Line
Count
Source
446
1.14k
    {
447
1.14k
        return m_value;
448
1.14k
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
1.14k
    {
447
1.14k
        return m_value;
448
1.14k
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
5.81k
    {
447
5.81k
        return m_value;
448
5.81k
    }
scn::v3::detail::expected_storage_base<char const*, scn::v3::impl::parse_error, true>::get_value() &
Line
Count
Source
446
3.32M
    {
447
3.32M
        return m_value;
448
3.32M
    }
scn::v3::detail::expected_storage_base<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::get_value() &
Line
Count
Source
446
4.58M
    {
447
4.58M
        return m_value;
448
4.58M
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::impl::eof_error, true>::get_value() &
Line
Count
Source
446
2.16M
    {
447
2.16M
        return m_value;
448
2.16M
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
2.16M
    {
447
2.16M
        return m_value;
448
2.16M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::get_value() &
scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
2.33M
    {
447
2.33M
        return m_value;
448
2.33M
    }
scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
364
    {
447
364
        return m_value;
448
364
    }
scn::v3::detail::expected_storage_base<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
2.34M
    {
447
2.34M
        return m_value;
448
2.34M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error, true>::get_value() &
scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
16.2M
    {
447
16.2M
        return m_value;
448
16.2M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error, true>::get_value() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error, true>::get_value() &
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::parse_error, true>::get_value() &
Line
Count
Source
446
1.02M
    {
447
1.02M
        return m_value;
448
1.02M
    }
scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::get_value() &
Line
Count
Source
446
631k
    {
447
631k
        return m_value;
448
631k
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::impl::eof_error, true>::get_value() &
Line
Count
Source
446
351k
    {
447
351k
        return m_value;
448
351k
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
351k
    {
447
351k
        return m_value;
448
351k
    }
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
47.8M
    {
447
47.8M
        return m_value;
448
47.8M
    }
scn::v3::detail::expected_storage_base<wchar_t const*, scn::v3::impl::eof_error, true>::get_value() &
Line
Count
Source
446
40.9M
    {
447
40.9M
        return m_value;
448
40.9M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::eof_error, true>::get_value() &
scn::v3::detail::expected_storage_base<std::__1::pair<wchar_t const*, long>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
31.9M
    {
447
31.9M
        return m_value;
448
31.9M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::parse_error, true>::get_value() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::scan_error, true>::get_value() &
scn::v3::detail::expected_storage_base<wchar_t const*, scn::v3::impl::parse_error, true>::get_value() &
Line
Count
Source
446
1.01M
    {
447
1.01M
        return m_value;
448
1.01M
    }
scn::v3::detail::expected_storage_base<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::get_value() &
Line
Count
Source
446
668k
    {
447
668k
        return m_value;
448
668k
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::impl::eof_error, true>::get_value() &
Line
Count
Source
446
379k
    {
447
379k
        return m_value;
448
379k
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
379k
    {
447
379k
        return m_value;
448
379k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::get_value() &
scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
277k
    {
447
277k
        return m_value;
448
277k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::get_value() &
scn::v3::detail::expected_storage_base<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
287k
    {
447
287k
        return m_value;
448
287k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, signed char>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
296k
    {
447
296k
        return m_value;
448
296k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned char>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
283k
    {
447
283k
        return m_value;
448
283k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, int>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
382k
    {
447
382k
        return m_value;
448
382k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
324k
    {
447
324k
        return m_value;
448
324k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long long>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
390k
    {
447
390k
        return m_value;
448
390k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned long long>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
328k
    {
447
328k
        return m_value;
448
328k
    }
scn::v3::detail::expected_storage_base<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
4.41M
    {
447
4.41M
        return m_value;
448
4.41M
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, signed char>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
298k
    {
447
298k
        return m_value;
448
298k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned char>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
285k
    {
447
285k
        return m_value;
448
285k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, int>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
383k
    {
447
383k
        return m_value;
448
383k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned int>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
326k
    {
447
326k
        return m_value;
448
326k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long long>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
390k
    {
447
390k
        return m_value;
448
390k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned long long>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
330k
    {
447
330k
        return m_value;
448
330k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, signed char>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
595
    {
447
595
        return m_value;
448
595
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned char>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
500
    {
447
500
        return m_value;
448
500
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
711
    {
447
711
        return m_value;
448
711
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
564
    {
447
564
        return m_value;
448
564
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long long>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
864
    {
447
864
        return m_value;
448
864
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned long long>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
694
    {
447
694
        return m_value;
448
694
    }
scn::v3::detail::expected_storage_base<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
19.6M
    {
447
19.6M
        return m_value;
448
19.6M
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, signed char>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
595
    {
447
595
        return m_value;
448
595
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned char>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
500
    {
447
500
        return m_value;
448
500
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, int>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
711
    {
447
711
        return m_value;
448
711
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned int>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
564
    {
447
564
        return m_value;
448
564
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long long>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
864
    {
447
864
        return m_value;
448
864
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned long long>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
694
    {
447
694
        return m_value;
448
694
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
151k
    {
447
151k
        return m_value;
448
151k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
19.6M
    {
447
19.6M
        return m_value;
448
19.6M
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, float>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
707k
    {
447
707k
        return m_value;
448
707k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, double>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
768k
    {
447
768k
        return m_value;
448
768k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long double>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
779k
    {
447
779k
        return m_value;
448
779k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, float>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
706k
    {
447
706k
        return m_value;
448
706k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, double>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
766k
    {
447
766k
        return m_value;
448
766k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long double>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
776k
    {
447
776k
        return m_value;
448
776k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, float>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
15.5k
    {
447
15.5k
        return m_value;
448
15.5k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
15.6k
    {
447
15.6k
        return m_value;
448
15.6k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long double>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
15.8k
    {
447
15.8k
        return m_value;
448
15.8k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, float>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
15.5k
    {
447
15.5k
        return m_value;
448
15.5k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, double>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
15.6k
    {
447
15.6k
        return m_value;
448
15.6k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long double>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
15.8k
    {
447
15.8k
        return m_value;
448
15.8k
    }
449
    constexpr const T& get_value() const& noexcept
450
0
    {
451
0
        return m_value;
452
0
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<char const*, scn::v3::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error, true>::get_value() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::parse_error, true>::get_value() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::parse_error, true>::get_value() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<char const*, scn::v3::impl::parse_error, true>::get_value() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error, true>::get_value() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::parse_error, true>::get_value() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<wchar_t const*, scn::v3::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::parse_error, true>::get_value() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<wchar_t const*, scn::v3::impl::parse_error, true>::get_value() const &
453
    constexpr T&& get_value() && noexcept
454
    {
455
        return std::move(m_value);
456
    }
457
    constexpr const T&& get_value() const&& noexcept
458
    {
459
        return std::move(m_value);
460
    }
461
462
    constexpr unexpected<E>& get_unexpected() & noexcept
463
31.1M
    {
464
31.1M
        return m_unexpected;
465
31.1M
    }
scn::v3::detail::expected_storage_base<long, scn::v3::scan_error, true>::get_unexpected() &
Line
Count
Source
463
2.86M
    {
464
2.86M
        return m_unexpected;
465
2.86M
    }
scn::v3::detail::expected_storage_base<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, scn::v3::scan_error, true>::get_unexpected() &
Line
Count
Source
463
454k
    {
464
454k
        return m_unexpected;
465
454k
    }
scn::v3::detail::expected_storage_base<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, scn::v3::scan_error, true>::get_unexpected() &
Line
Count
Source
463
913k
    {
464
913k
        return m_unexpected;
465
913k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::regex_constants::syntax_option_type, scn::v3::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<wchar_t, scn::v3::scan_error, true>::get_unexpected() &
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::eof_error, true>::get_unexpected() &
Line
Count
Source
463
156k
    {
464
156k
        return m_unexpected;
465
156k
    }
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::eof_error, true>::get_unexpected() &
Line
Count
Source
463
85.4k
    {
464
85.4k
        return m_unexpected;
465
85.4k
    }
scn::v3::detail::expected_storage_base<char const*, scn::v3::scan_error, true>::get_unexpected() &
Line
Count
Source
463
931k
    {
464
931k
        return m_unexpected;
465
931k
    }
scn::v3::detail::expected_storage_base<wchar_t const*, scn::v3::scan_error, true>::get_unexpected() &
Line
Count
Source
463
1.71M
    {
464
1.71M
        return m_unexpected;
465
1.71M
    }
scn::v3::detail::expected_storage_base<char const*, scn::v3::impl::eof_error, true>::get_unexpected() &
Line
Count
Source
463
61.1k
    {
464
61.1k
        return m_unexpected;
465
61.1k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error, true>::get_unexpected() &
scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, long>, scn::v3::scan_error, true>::get_unexpected() &
Line
Count
Source
463
41.8k
    {
464
41.8k
        return m_unexpected;
465
41.8k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error, true>::get_unexpected() &
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::parse_error, true>::get_unexpected() &
Line
Count
Source
463
8.54M
    {
464
8.54M
        return m_unexpected;
465
8.54M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::scan_error, true>::get_unexpected() &
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::scan_error, true>::get_unexpected() &
Line
Count
Source
463
786k
    {
464
786k
        return m_unexpected;
465
786k
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::eof_error, true>::get_unexpected() &
Line
Count
Source
463
304
    {
464
304
        return m_unexpected;
465
304
    }
scn::v3::detail::expected_storage_base<std::__1::pair<char const*, long>, scn::v3::scan_error, true>::get_unexpected() &
Line
Count
Source
463
38.3k
    {
464
38.3k
        return m_unexpected;
465
38.3k
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::parse_error, true>::get_unexpected() &
Line
Count
Source
463
3.95k
    {
464
3.95k
        return m_unexpected;
465
3.95k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::scan_error, true>::get_unexpected() &
scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::scan_error, true>::get_unexpected() &
Line
Count
Source
463
6.56k
    {
464
6.56k
        return m_unexpected;
465
6.56k
    }
scn::v3::detail::expected_storage_base<char const*, scn::v3::impl::parse_error, true>::get_unexpected() &
Line
Count
Source
463
8.25M
    {
464
8.25M
        return m_unexpected;
465
8.25M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error, true>::get_unexpected() &
scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>, scn::v3::scan_error, true>::get_unexpected() &
Line
Count
Source
463
5.18k
    {
464
5.18k
        return m_unexpected;
465
5.18k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error, true>::get_unexpected() &
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::parse_error, true>::get_unexpected() &
Line
Count
Source
463
1.79M
    {
464
1.79M
        return m_unexpected;
465
1.79M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::scan_error, true>::get_unexpected() &
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::scan_error, true>::get_unexpected() &
Line
Count
Source
463
1.82M
    {
464
1.82M
        return m_unexpected;
465
1.82M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::eof_error, true>::get_unexpected() &
scn::v3::detail::expected_storage_base<wchar_t const*, scn::v3::impl::eof_error, true>::get_unexpected() &
Line
Count
Source
463
89.4k
    {
464
89.4k
        return m_unexpected;
465
89.4k
    }
scn::v3::detail::expected_storage_base<std::__1::pair<wchar_t const*, long>, scn::v3::scan_error, true>::get_unexpected() &
Line
Count
Source
463
6.88k
    {
464
6.88k
        return m_unexpected;
465
6.88k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::parse_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::scan_error, true>::get_unexpected() &
scn::v3::detail::expected_storage_base<wchar_t const*, scn::v3::impl::parse_error, true>::get_unexpected() &
Line
Count
Source
463
1.42M
    {
464
1.42M
        return m_unexpected;
465
1.42M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::get_unexpected() &
scn::v3::detail::expected_storage_base<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, scn::v3::scan_error, true>::get_unexpected() &
Line
Count
Source
463
371k
    {
464
371k
        return m_unexpected;
465
371k
    }
scn::v3::detail::expected_storage_base<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, scn::v3::scan_error, true>::get_unexpected() &
Line
Count
Source
463
743k
    {
464
743k
        return m_unexpected;
465
743k
    }
466
    constexpr const unexpected<E>& get_unexpected() const& noexcept
467
0
    {
468
0
        return m_unexpected;
469
0
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<char const*, scn::v3::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::parse_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::parse_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<char const*, scn::v3::impl::parse_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::parse_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<wchar_t const*, scn::v3::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::parse_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<wchar_t const*, scn::v3::impl::parse_error, true>::get_unexpected() const &
470
    constexpr unexpected<E>&& get_unexpected() && noexcept
471
    {
472
        return std::move(m_unexpected);
473
    }
474
    constexpr const unexpected<E>&& get_unexpected() const&& noexcept
475
    {
476
        return std::move(m_unexpected);
477
    }
478
479
    SCN_NODISCARD constexpr bool has_value() const noexcept
480
1.26G
    {
481
1.26G
        return m_has_value;
482
1.26G
    }
scn::v3::detail::expected_storage_base<long, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
209M
    {
481
209M
        return m_has_value;
482
209M
    }
scn::v3::detail::expected_storage_base<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
10.0M
    {
481
10.0M
        return m_has_value;
482
10.0M
    }
scn::v3::detail::expected_storage_base<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
80.3M
    {
481
80.3M
        return m_has_value;
482
80.3M
    }
scn::v3::detail::expected_storage_base<std::__1::regex_constants::syntax_option_type, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
20.7k
    {
481
20.7k
        return m_has_value;
482
20.7k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<wchar_t, scn::v3::scan_error, true>::has_value() const
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::eof_error, true>::has_value() const
Line
Count
Source
480
37.0M
    {
481
37.0M
        return m_has_value;
482
37.0M
    }
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::eof_error, true>::has_value() const
Line
Count
Source
480
43.2M
    {
481
43.2M
        return m_has_value;
482
43.2M
    }
scn::v3::detail::expected_storage_base<char const*, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
54.9M
    {
481
54.9M
        return m_has_value;
482
54.9M
    }
scn::v3::detail::expected_storage_base<wchar_t const*, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
195M
    {
481
195M
        return m_has_value;
482
195M
    }
scn::v3::detail::expected_storage_base<char const*, scn::v3::impl::eof_error, true>::has_value() const
Line
Count
Source
480
17.4M
    {
481
17.4M
        return m_has_value;
482
17.4M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error, true>::has_value() const
scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, long>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
13.3M
    {
481
13.3M
        return m_has_value;
482
13.3M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error, true>::has_value() const
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error, true>::has_value() const
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::parse_error, true>::has_value() const
Line
Count
Source
480
65.2M
    {
481
65.2M
        return m_has_value;
482
65.2M
    }
scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::has_value() const
Line
Count
Source
480
9.49M
    {
481
9.49M
        return m_has_value;
482
9.49M
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::impl::eof_error, true>::has_value() const
Line
Count
Source
480
4.33M
    {
481
4.33M
        return m_has_value;
482
4.33M
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
4.33M
    {
481
4.33M
        return m_has_value;
482
4.33M
    }
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
40.7M
    {
481
40.7M
        return m_has_value;
482
40.7M
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::eof_error, true>::has_value() const
Line
Count
Source
480
14.5k
    {
481
14.5k
        return m_has_value;
482
14.5k
    }
scn::v3::detail::expected_storage_base<std::__1::pair<char const*, long>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
13.4M
    {
481
13.4M
        return m_has_value;
482
13.4M
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::parse_error, true>::has_value() const
Line
Count
Source
480
15.9k
    {
481
15.9k
        return m_has_value;
482
15.9k
    }
scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::has_value() const
Line
Count
Source
480
3.02k
    {
481
3.02k
        return m_has_value;
482
3.02k
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::impl::eof_error, true>::has_value() const
Line
Count
Source
480
2.29k
    {
481
2.29k
        return m_has_value;
482
2.29k
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
2.29k
    {
481
2.29k
        return m_has_value;
482
2.29k
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
25.4k
    {
481
25.4k
        return m_has_value;
482
25.4k
    }
scn::v3::detail::expected_storage_base<char const*, scn::v3::impl::parse_error, true>::has_value() const
Line
Count
Source
480
34.8M
    {
481
34.8M
        return m_has_value;
482
34.8M
    }
scn::v3::detail::expected_storage_base<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::has_value() const
Line
Count
Source
480
9.17M
    {
481
9.17M
        return m_has_value;
482
9.17M
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::impl::eof_error, true>::has_value() const
Line
Count
Source
480
4.32M
    {
481
4.32M
        return m_has_value;
482
4.32M
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
4.32M
    {
481
4.32M
        return m_has_value;
482
4.32M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::has_value() const
scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
4.67M
    {
481
4.67M
        return m_has_value;
482
4.67M
    }
scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
728
    {
481
728
        return m_has_value;
482
728
    }
scn::v3::detail::expected_storage_base<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
4.69M
    {
481
4.69M
        return m_has_value;
482
4.69M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error, true>::has_value() const
scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
32.4M
    {
481
32.4M
        return m_has_value;
482
32.4M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error, true>::has_value() const
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error, true>::has_value() const
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::parse_error, true>::has_value() const
Line
Count
Source
480
7.39M
    {
481
7.39M
        return m_has_value;
482
7.39M
    }
scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::has_value() const
Line
Count
Source
480
1.26M
    {
481
1.26M
        return m_has_value;
482
1.26M
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::impl::eof_error, true>::has_value() const
Line
Count
Source
480
703k
    {
481
703k
        return m_has_value;
482
703k
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
703k
    {
481
703k
        return m_has_value;
482
703k
    }
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
99.8M
    {
481
99.8M
        return m_has_value;
482
99.8M
    }
scn::v3::detail::expected_storage_base<wchar_t const*, scn::v3::impl::eof_error, true>::has_value() const
Line
Count
Source
480
82.8M
    {
481
82.8M
        return m_has_value;
482
82.8M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::eof_error, true>::has_value() const
scn::v3::detail::expected_storage_base<std::__1::pair<wchar_t const*, long>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
63.8M
    {
481
63.8M
        return m_has_value;
482
63.8M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::parse_error, true>::has_value() const
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::scan_error, true>::has_value() const
scn::v3::detail::expected_storage_base<wchar_t const*, scn::v3::impl::parse_error, true>::has_value() const
Line
Count
Source
480
6.54M
    {
481
6.54M
        return m_has_value;
482
6.54M
    }
scn::v3::detail::expected_storage_base<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::has_value() const
Line
Count
Source
480
1.33M
    {
481
1.33M
        return m_has_value;
482
1.33M
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::impl::eof_error, true>::has_value() const
Line
Count
Source
480
759k
    {
481
759k
        return m_has_value;
482
759k
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
759k
    {
481
759k
        return m_has_value;
482
759k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::has_value() const
scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
555k
    {
481
555k
        return m_has_value;
482
555k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::has_value() const
scn::v3::detail::expected_storage_base<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
574k
    {
481
574k
        return m_has_value;
482
574k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, signed char>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
634k
    {
481
634k
        return m_has_value;
482
634k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned char>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
607k
    {
481
607k
        return m_has_value;
482
607k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, int>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
806k
    {
481
806k
        return m_has_value;
482
806k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
690k
    {
481
690k
        return m_has_value;
482
690k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long long>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
822k
    {
481
822k
        return m_has_value;
482
822k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned long long>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
698k
    {
481
698k
        return m_has_value;
482
698k
    }
scn::v3::detail::expected_storage_base<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
9.57M
    {
481
9.57M
        return m_has_value;
482
9.57M
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, signed char>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
638k
    {
481
638k
        return m_has_value;
482
638k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned char>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
610k
    {
481
610k
        return m_has_value;
482
610k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, int>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
807k
    {
481
807k
        return m_has_value;
482
807k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned int>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
693k
    {
481
693k
        return m_has_value;
482
693k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long long>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
822k
    {
481
822k
        return m_has_value;
482
822k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned long long>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
702k
    {
481
702k
        return m_has_value;
482
702k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, signed char>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
82.9k
    {
481
82.9k
        return m_has_value;
482
82.9k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned char>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
82.7k
    {
481
82.7k
        return m_has_value;
482
82.7k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
83.1k
    {
481
83.1k
        return m_has_value;
482
83.1k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
82.8k
    {
481
82.8k
        return m_has_value;
482
82.8k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long long>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
83.4k
    {
481
83.4k
        return m_has_value;
482
83.4k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned long long>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
83.1k
    {
481
83.1k
        return m_has_value;
482
83.1k
    }
scn::v3::detail::expected_storage_base<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
40.7M
    {
481
40.7M
        return m_has_value;
482
40.7M
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, signed char>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
82.9k
    {
481
82.9k
        return m_has_value;
482
82.9k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned char>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
82.7k
    {
481
82.7k
        return m_has_value;
482
82.7k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, int>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
83.1k
    {
481
83.1k
        return m_has_value;
482
83.1k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned int>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
82.8k
    {
481
82.8k
        return m_has_value;
482
82.8k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long long>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
83.4k
    {
481
83.4k
        return m_has_value;
482
83.4k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned long long>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
83.1k
    {
481
83.1k
        return m_has_value;
482
83.1k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
312k
    {
481
312k
        return m_has_value;
482
312k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
39.2M
    {
481
39.2M
        return m_has_value;
482
39.2M
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, float>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
1.45M
    {
481
1.45M
        return m_has_value;
482
1.45M
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, double>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
1.57M
    {
481
1.57M
        return m_has_value;
482
1.57M
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long double>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
1.59M
    {
481
1.59M
        return m_has_value;
482
1.59M
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, float>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
1.45M
    {
481
1.45M
        return m_has_value;
482
1.45M
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, double>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
1.57M
    {
481
1.57M
        return m_has_value;
482
1.57M
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long double>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
1.59M
    {
481
1.59M
        return m_has_value;
482
1.59M
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, float>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
108k
    {
481
108k
        return m_has_value;
482
108k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
109k
    {
481
109k
        return m_has_value;
482
109k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long double>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
109k
    {
481
109k
        return m_has_value;
482
109k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, float>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
108k
    {
481
108k
        return m_has_value;
482
108k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, double>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
108k
    {
481
108k
        return m_has_value;
482
108k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long double>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
109k
    {
481
109k
        return m_has_value;
482
109k
    }
483
484
    template <typename... Args>
485
    void construct(Args&&... args) noexcept(
486
        std::is_nothrow_constructible_v<T, Args...>)
487
    {
488
        scn::detail::construct_at(&get_value(), std::forward<Args>(args)...);
489
        m_has_value = true;
490
    }
491
    template <typename... Args>
492
    void construct_unexpected(Args&&... args) noexcept(
493
        std::is_nothrow_constructible_v<E, Args...>)
494
    {
495
        scn::detail::construct_at(&get_unexpected(),
496
                                  std::forward<Args>(args)...);
497
        m_has_value = false;
498
    }
499
500
    // No-op, because T and E are trivially destructible
501
    static constexpr void destroy_value() noexcept {}
502
    static constexpr void destroy_unexpected() noexcept {}
503
504
private:
505
    union {
506
        T m_value;
507
        unexpected<E> m_unexpected;
508
        char m_deferred_init;
509
    };
510
    bool m_has_value;
511
};
512
513
template <typename E>
514
struct SCN_TRIVIAL_ABI expected_storage_base<void, E, true> {
515
    constexpr expected_storage_base() noexcept : m_has_value(true) {}
516
517
    explicit constexpr expected_storage_base(deferred_init_tag_t) noexcept
518
        : m_deferred_init(), m_has_value(false)
519
    {
520
    }
521
522
    explicit constexpr expected_storage_base(std::in_place_t) noexcept
523
        : m_has_value(true)
524
    {
525
    }
526
527
    template <typename... Args,
528
              typename = std::enable_if_t<std::is_constructible_v<E, Args...>>>
529
    explicit constexpr expected_storage_base(
530
        unexpect_t,
531
        Args&&... args) noexcept(std::is_nothrow_constructible_v<E, Args...>)
532
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
533
          m_has_value(false)
534
    {
535
    }
536
537
    constexpr unexpected<E>& get_unexpected() & noexcept
538
    {
539
        return m_unexpected;
540
    }
541
    constexpr const unexpected<E>& get_unexpected() const& noexcept
542
    {
543
        return m_unexpected;
544
    }
545
    constexpr unexpected<E>&& get_unexpected() && noexcept
546
    {
547
        return std::move(m_unexpected);
548
    }
549
    constexpr const unexpected<E>&& get_unexpected() const&& noexcept
550
    {
551
        return std::move(m_unexpected);
552
    }
553
554
    SCN_NODISCARD constexpr bool has_value() const noexcept
555
    {
556
        return m_has_value;
557
    }
558
559
    template <typename... Args>
560
    void construct(Args&&...) noexcept
561
    {
562
        m_has_value = true;
563
    }
564
    template <typename... Args>
565
    void construct_unexpected(Args&&... args) noexcept(
566
        std::is_nothrow_constructible_v<E, Args...>)
567
    {
568
        scn::detail::construct_at(&get_unexpected(),
569
                                  std::forward<Args>(args)...);
570
        m_has_value = false;
571
    }
572
573
    static constexpr void destroy_value() noexcept {}
574
    static constexpr void destroy_unexpected() noexcept {}
575
576
private:
577
    union {
578
        unexpected<E> m_unexpected;
579
        char m_deferred_init;
580
    };
581
    bool m_has_value;
582
};
583
584
/**
585
 * Implementation of `std::max` without including `<algorithm>`
586
 */
587
template <typename T>
588
constexpr T max(T a, T b) noexcept
589
0
{
590
0
    return (a < b) ? b : a;
591
0
}
592
593
template <typename T, typename E>
594
struct SCN_TRIVIAL_ABI expected_storage_base<T, E, false> {
595
    constexpr expected_storage_base() noexcept : m_has_value(true)
596
    {
597
        construct();
598
    }
599
600
    explicit constexpr expected_storage_base(deferred_init_tag_t) noexcept
601
        : m_has_value(false)
602
    {
603
    }
604
605
    template <typename... Args,
606
              typename = std::enable_if_t<std::is_constructible_v<T, Args...>>>
607
    explicit constexpr expected_storage_base(
608
        std::in_place_t,
609
        Args&&... args) noexcept(std::is_nothrow_constructible_v<T, Args...>)
610
        : m_has_value(true)
611
40.1M
    {
612
40.1M
        construct(std::forward<Args>(args)...);
613
40.1M
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
611
151k
    {
612
151k
        construct(std::forward<Args>(args)...);
613
151k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, false>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&&)
Line
Count
Source
611
842
    {
612
842
        construct(std::forward<Args>(args)...);
613
842
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
611
60
    {
612
60
        construct(std::forward<Args>(args)...);
613
60
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, false>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&&)
Line
Count
Source
611
19.6M
    {
612
19.6M
        construct(std::forward<Args>(args)...);
613
19.6M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::in_place_t, std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::expected_storage_base<std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::in_place_t, std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
611
311k
    {
612
311k
        construct(std::forward<Args>(args)...);
613
311k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::in_place_t, std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
scn::v3::detail::expected_storage_base<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::expected_storage_base<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::in_place_t, std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
611
309k
    {
612
309k
        construct(std::forward<Args>(args)...);
613
309k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::in_place_t, std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::expected_storage_base<std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::in_place_t, std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
611
724
    {
612
724
        construct(std::forward<Args>(args)...);
613
724
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::in_place_t, std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
scn::v3::detail::expected_storage_base<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::expected_storage_base<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::in_place_t, std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
611
724
    {
612
724
        construct(std::forward<Args>(args)...);
613
724
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
611
152k
    {
612
152k
        construct(std::forward<Args>(args)...);
613
152k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, false>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&&)
Line
Count
Source
611
19.6M
    {
612
19.6M
        construct(std::forward<Args>(args)...);
613
19.6M
    }
614
615
    template <typename... Args,
616
              typename = std::enable_if_t<std::is_constructible_v<E, Args...>>>
617
    explicit constexpr expected_storage_base(
618
        unexpect_t,
619
        Args&&... args) noexcept(std::is_nothrow_constructible_v<E, Args...>)
620
        : m_has_value(false)
621
218k
    {
622
218k
        construct_unexpected(std::in_place, std::forward<Args>(args)...);
623
218k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
621
17.5k
    {
622
17.5k
        construct_unexpected(std::in_place, std::forward<Args>(args)...);
623
17.5k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, false>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
621
7.53k
    {
622
7.53k
        construct_unexpected(std::in_place, std::forward<Args>(args)...);
623
7.53k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
621
16.6k
    {
622
16.6k
        construct_unexpected(std::in_place, std::forward<Args>(args)...);
623
16.6k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, false>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
621
36.6k
    {
622
36.6k
        construct_unexpected(std::in_place, std::forward<Args>(args)...);
623
36.6k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
621
8.86k
    {
622
8.86k
        construct_unexpected(std::in_place, std::forward<Args>(args)...);
623
8.86k
    }
scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
621
16
    {
622
16
        construct_unexpected(std::in_place, std::forward<Args>(args)...);
623
16
    }
scn::v3::detail::expected_storage_base<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
621
9.25k
    {
622
9.25k
        construct_unexpected(std::in_place, std::forward<Args>(args)...);
623
9.25k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
621
46.0k
    {
622
46.0k
        construct_unexpected(std::in_place, std::forward<Args>(args)...);
623
46.0k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
scn::v3::detail::expected_storage_base<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
621
46.0k
    {
622
46.0k
        construct_unexpected(std::in_place, std::forward<Args>(args)...);
623
46.0k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
621
9.99k
    {
622
9.99k
        construct_unexpected(std::in_place, std::forward<Args>(args)...);
623
9.99k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, false>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
621
19.9k
    {
622
19.9k
        construct_unexpected(std::in_place, std::forward<Args>(args)...);
623
19.9k
    }
624
625
    ~expected_storage_base()
626
40.3M
    {
627
40.3M
        if (has_value()) {
628
40.1M
            destroy_value();
629
40.1M
        }
630
218k
        else {
631
218k
            destroy_unexpected();
632
218k
        }
633
40.3M
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::~expected_storage_base()
Line
Count
Source
626
169k
    {
627
169k
        if (has_value()) {
628
151k
            destroy_value();
629
151k
        }
630
17.5k
        else {
631
17.5k
            destroy_unexpected();
632
17.5k
        }
633
169k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, false>::~expected_storage_base()
Line
Count
Source
626
8.37k
    {
627
8.37k
        if (has_value()) {
628
842
            destroy_value();
629
842
        }
630
7.53k
        else {
631
7.53k
            destroy_unexpected();
632
7.53k
        }
633
8.37k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::~expected_storage_base()
Line
Count
Source
626
16.7k
    {
627
16.7k
        if (has_value()) {
628
60
            destroy_value();
629
60
        }
630
16.6k
        else {
631
16.6k
            destroy_unexpected();
632
16.6k
        }
633
16.7k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, false>::~expected_storage_base()
Line
Count
Source
626
19.6M
    {
627
19.6M
        if (has_value()) {
628
19.6M
            destroy_value();
629
19.6M
        }
630
36.6k
        else {
631
36.6k
            destroy_unexpected();
632
36.6k
        }
633
19.6M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::~expected_storage_base()
scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::~expected_storage_base()
Line
Count
Source
626
320k
    {
627
320k
        if (has_value()) {
628
311k
            destroy_value();
629
311k
        }
630
8.86k
        else {
631
8.86k
            destroy_unexpected();
632
8.86k
        }
633
320k
    }
scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::~expected_storage_base()
Line
Count
Source
626
16
    {
627
16
        if (has_value()) {
628
0
            destroy_value();
629
0
        }
630
16
        else {
631
16
            destroy_unexpected();
632
16
        }
633
16
    }
scn::v3::detail::expected_storage_base<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::~expected_storage_base()
Line
Count
Source
626
319k
    {
627
319k
        if (has_value()) {
628
309k
            destroy_value();
629
309k
        }
630
9.25k
        else {
631
9.25k
            destroy_unexpected();
632
9.25k
        }
633
319k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::~expected_storage_base()
scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::~expected_storage_base()
Line
Count
Source
626
46.7k
    {
627
46.7k
        if (has_value()) {
628
724
            destroy_value();
629
724
        }
630
46.0k
        else {
631
46.0k
            destroy_unexpected();
632
46.0k
        }
633
46.7k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::~expected_storage_base()
scn::v3::detail::expected_storage_base<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::~expected_storage_base()
Line
Count
Source
626
46.7k
    {
627
46.7k
        if (has_value()) {
628
724
            destroy_value();
629
724
        }
630
46.0k
        else {
631
46.0k
            destroy_unexpected();
632
46.0k
        }
633
46.7k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::~expected_storage_base()
Line
Count
Source
626
162k
    {
627
162k
        if (has_value()) {
628
152k
            destroy_value();
629
152k
        }
630
9.99k
        else {
631
9.99k
            destroy_unexpected();
632
9.99k
        }
633
162k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, false>::~expected_storage_base()
Line
Count
Source
626
19.6M
    {
627
19.6M
        if (has_value()) {
628
19.6M
            destroy_value();
629
19.6M
        }
630
19.9k
        else {
631
19.9k
            destroy_unexpected();
632
19.9k
        }
633
19.6M
    }
634
635
    constexpr T& get_value() & noexcept
636
40.1M
    {
637
40.1M
        return *value_ptr();
638
40.1M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::get_value() &
scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::get_value() &
Line
Count
Source
636
311k
    {
637
311k
        return *value_ptr();
638
311k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::get_value() &
scn::v3::detail::expected_storage_base<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::get_value() &
Line
Count
Source
636
309k
    {
637
309k
        return *value_ptr();
638
309k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::get_value() &
scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::get_value() &
Line
Count
Source
636
724
    {
637
724
        return *value_ptr();
638
724
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::get_value() &
scn::v3::detail::expected_storage_base<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::get_value() &
Line
Count
Source
636
724
    {
637
724
        return *value_ptr();
638
724
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::get_value() &
Line
Count
Source
636
151k
    {
637
151k
        return *value_ptr();
638
151k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::get_value() &
Line
Count
Source
636
152k
    {
637
152k
        return *value_ptr();
638
152k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, false>::get_value() &
Line
Count
Source
636
19.6M
    {
637
19.6M
        return *value_ptr();
638
19.6M
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, false>::get_value() &
Line
Count
Source
636
19.6M
    {
637
19.6M
        return *value_ptr();
638
19.6M
    }
639
    constexpr const T& get_value() const& noexcept
640
    {
641
        return *value_ptr();
642
    }
643
    constexpr T&& get_value() && noexcept
644
    {
645
        return std::move(*value_ptr());
646
    }
647
    constexpr const T&& get_value() const&& noexcept
648
    {
649
        return std::move(*value_ptr());
650
    }
651
652
    constexpr unexpected<E>& get_unexpected() & noexcept
653
110k
    {
654
110k
        return *unexpected_ptr();
655
110k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::get_unexpected() &
scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::get_unexpected() &
Line
Count
Source
653
8.86k
    {
654
8.86k
        return *unexpected_ptr();
655
8.86k
    }
scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::get_unexpected() &
Line
Count
Source
653
16
    {
654
16
        return *unexpected_ptr();
655
16
    }
scn::v3::detail::expected_storage_base<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::get_unexpected() &
Line
Count
Source
653
9.25k
    {
654
9.25k
        return *unexpected_ptr();
655
9.25k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::get_unexpected() &
scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::get_unexpected() &
Line
Count
Source
653
46.0k
    {
654
46.0k
        return *unexpected_ptr();
655
46.0k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::get_unexpected() &
scn::v3::detail::expected_storage_base<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::get_unexpected() &
Line
Count
Source
653
46.0k
    {
654
46.0k
        return *unexpected_ptr();
655
46.0k
    }
656
    constexpr const unexpected<E>& get_unexpected() const& noexcept
657
    {
658
        return *unexpected_ptr();
659
    }
660
    constexpr unexpected<E>&& get_unexpected() && noexcept
661
    {
662
        return std::move(*unexpected_ptr());
663
    }
664
    constexpr const unexpected<E>&& get_unexpected() const&& noexcept
665
    {
666
        return std::move(*unexpected_ptr());
667
    }
668
669
    SCN_NODISCARD constexpr bool has_value() const noexcept
670
120M
    {
671
120M
        return m_has_value;
672
120M
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::has_value() const
Line
Count
Source
670
481k
    {
671
481k
        return m_has_value;
672
481k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, false>::has_value() const
Line
Count
Source
670
8.37k
    {
671
8.37k
        return m_has_value;
672
8.37k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::has_value() const
Line
Count
Source
670
16.7k
    {
671
16.7k
        return m_has_value;
672
16.7k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, false>::has_value() const
Line
Count
Source
670
58.8M
    {
671
58.8M
        return m_has_value;
672
58.8M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::has_value() const
scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::has_value() const
Line
Count
Source
670
960k
    {
671
960k
        return m_has_value;
672
960k
    }
scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::has_value() const
Line
Count
Source
670
48
    {
671
48
        return m_has_value;
672
48
    }
scn::v3::detail::expected_storage_base<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::has_value() const
Line
Count
Source
670
957k
    {
671
957k
        return m_has_value;
672
957k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::has_value() const
scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::has_value() const
Line
Count
Source
670
140k
    {
671
140k
        return m_has_value;
672
140k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::has_value() const
scn::v3::detail::expected_storage_base<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::has_value() const
Line
Count
Source
670
140k
    {
671
140k
        return m_has_value;
672
140k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::has_value() const
Line
Count
Source
670
478k
    {
671
478k
        return m_has_value;
672
478k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, false>::has_value() const
Line
Count
Source
670
58.8M
    {
671
58.8M
        return m_has_value;
672
58.8M
    }
673
674
    template <typename... Args>
675
    void construct(Args&&... args) noexcept(
676
        std::is_nothrow_constructible_v<T, Args...>)
677
40.1M
    {
678
40.1M
        scn::detail::construct_at(value_ptr(), std::forward<Args>(args)...);
679
40.1M
        m_has_value = true;
680
40.1M
    }
void scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::construct<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
677
151k
    {
678
151k
        scn::detail::construct_at(value_ptr(), std::forward<Args>(args)...);
679
151k
        m_has_value = true;
680
151k
    }
void scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, false>::construct<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > > >(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&&)
Line
Count
Source
677
842
    {
678
842
        scn::detail::construct_at(value_ptr(), std::forward<Args>(args)...);
679
842
        m_has_value = true;
680
842
    }
void scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::construct<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
677
60
    {
678
60
        scn::detail::construct_at(value_ptr(), std::forward<Args>(args)...);
679
60
        m_has_value = true;
680
60
    }
void scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, false>::construct<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > > >(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&&)
Line
Count
Source
677
19.6M
    {
678
19.6M
        scn::detail::construct_at(value_ptr(), std::forward<Args>(args)...);
679
19.6M
        m_has_value = true;
680
19.6M
    }
Unexecuted instantiation: void scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::construct<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
void scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::construct<std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
677
311k
    {
678
311k
        scn::detail::construct_at(value_ptr(), std::forward<Args>(args)...);
679
311k
        m_has_value = true;
680
311k
    }
Unexecuted instantiation: void scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::construct<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
void scn::v3::detail::expected_storage_base<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::construct<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
677
309k
    {
678
309k
        scn::detail::construct_at(value_ptr(), std::forward<Args>(args)...);
679
309k
        m_has_value = true;
680
309k
    }
Unexecuted instantiation: void scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::construct<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
void scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::construct<std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
677
724
    {
678
724
        scn::detail::construct_at(value_ptr(), std::forward<Args>(args)...);
679
724
        m_has_value = true;
680
724
    }
Unexecuted instantiation: void scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::construct<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
void scn::v3::detail::expected_storage_base<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::construct<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
677
724
    {
678
724
        scn::detail::construct_at(value_ptr(), std::forward<Args>(args)...);
679
724
        m_has_value = true;
680
724
    }
void scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::construct<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
677
152k
    {
678
152k
        scn::detail::construct_at(value_ptr(), std::forward<Args>(args)...);
679
152k
        m_has_value = true;
680
152k
    }
void scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, false>::construct<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > > >(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&&)
Line
Count
Source
677
19.6M
    {
678
19.6M
        scn::detail::construct_at(value_ptr(), std::forward<Args>(args)...);
679
19.6M
        m_has_value = true;
680
19.6M
    }
681
    template <typename... Args>
682
    void construct_unexpected(Args&&... args) noexcept(
683
        std::is_nothrow_constructible_v<E, Args...>)
684
218k
    {
685
218k
        scn::detail::construct_at(unexpected_ptr(),
686
218k
                                  std::forward<Args>(args)...);
687
218k
        m_has_value = false;
688
218k
    }
void scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::construct_unexpected<std::__1::in_place_t const&, scn::v3::scan_error>(std::__1::in_place_t const&, scn::v3::scan_error&&)
Line
Count
Source
684
17.5k
    {
685
17.5k
        scn::detail::construct_at(unexpected_ptr(),
686
17.5k
                                  std::forward<Args>(args)...);
687
17.5k
        m_has_value = false;
688
17.5k
    }
void scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, false>::construct_unexpected<std::__1::in_place_t const&, scn::v3::scan_error>(std::__1::in_place_t const&, scn::v3::scan_error&&)
Line
Count
Source
684
7.53k
    {
685
7.53k
        scn::detail::construct_at(unexpected_ptr(),
686
7.53k
                                  std::forward<Args>(args)...);
687
7.53k
        m_has_value = false;
688
7.53k
    }
void scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::construct_unexpected<std::__1::in_place_t const&, scn::v3::scan_error>(std::__1::in_place_t const&, scn::v3::scan_error&&)
Line
Count
Source
684
16.6k
    {
685
16.6k
        scn::detail::construct_at(unexpected_ptr(),
686
16.6k
                                  std::forward<Args>(args)...);
687
16.6k
        m_has_value = false;
688
16.6k
    }
void scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, false>::construct_unexpected<std::__1::in_place_t const&, scn::v3::scan_error>(std::__1::in_place_t const&, scn::v3::scan_error&&)
Line
Count
Source
684
36.6k
    {
685
36.6k
        scn::detail::construct_at(unexpected_ptr(),
686
36.6k
                                  std::forward<Args>(args)...);
687
36.6k
        m_has_value = false;
688
36.6k
    }
Unexecuted instantiation: void scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::construct_unexpected<std::__1::in_place_t const&, scn::v3::scan_error>(std::__1::in_place_t const&, scn::v3::scan_error&&)
void scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::construct_unexpected<std::__1::in_place_t const&, scn::v3::scan_error>(std::__1::in_place_t const&, scn::v3::scan_error&&)
Line
Count
Source
684
8.86k
    {
685
8.86k
        scn::detail::construct_at(unexpected_ptr(),
686
8.86k
                                  std::forward<Args>(args)...);
687
8.86k
        m_has_value = false;
688
8.86k
    }
void scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::construct_unexpected<std::__1::in_place_t const&, scn::v3::scan_error>(std::__1::in_place_t const&, scn::v3::scan_error&&)
Line
Count
Source
684
16
    {
685
16
        scn::detail::construct_at(unexpected_ptr(),
686
16
                                  std::forward<Args>(args)...);
687
16
        m_has_value = false;
688
16
    }
void scn::v3::detail::expected_storage_base<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::construct_unexpected<std::__1::in_place_t const&, scn::v3::scan_error>(std::__1::in_place_t const&, scn::v3::scan_error&&)
Line
Count
Source
684
9.25k
    {
685
9.25k
        scn::detail::construct_at(unexpected_ptr(),
686
9.25k
                                  std::forward<Args>(args)...);
687
9.25k
        m_has_value = false;
688
9.25k
    }
Unexecuted instantiation: void scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::construct_unexpected<std::__1::in_place_t const&, scn::v3::scan_error>(std::__1::in_place_t const&, scn::v3::scan_error&&)
void scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::construct_unexpected<std::__1::in_place_t const&, scn::v3::scan_error>(std::__1::in_place_t const&, scn::v3::scan_error&&)
Line
Count
Source
684
46.0k
    {
685
46.0k
        scn::detail::construct_at(unexpected_ptr(),
686
46.0k
                                  std::forward<Args>(args)...);
687
46.0k
        m_has_value = false;
688
46.0k
    }
Unexecuted instantiation: void scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::construct_unexpected<std::__1::in_place_t const&, scn::v3::scan_error>(std::__1::in_place_t const&, scn::v3::scan_error&&)
void scn::v3::detail::expected_storage_base<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::construct_unexpected<std::__1::in_place_t const&, scn::v3::scan_error>(std::__1::in_place_t const&, scn::v3::scan_error&&)
Line
Count
Source
684
46.0k
    {
685
46.0k
        scn::detail::construct_at(unexpected_ptr(),
686
46.0k
                                  std::forward<Args>(args)...);
687
46.0k
        m_has_value = false;
688
46.0k
    }
void scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::construct_unexpected<std::__1::in_place_t const&, scn::v3::scan_error>(std::__1::in_place_t const&, scn::v3::scan_error&&)
Line
Count
Source
684
9.99k
    {
685
9.99k
        scn::detail::construct_at(unexpected_ptr(),
686
9.99k
                                  std::forward<Args>(args)...);
687
9.99k
        m_has_value = false;
688
9.99k
    }
void scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, false>::construct_unexpected<std::__1::in_place_t const&, scn::v3::scan_error>(std::__1::in_place_t const&, scn::v3::scan_error&&)
Line
Count
Source
684
19.9k
    {
685
19.9k
        scn::detail::construct_at(unexpected_ptr(),
686
19.9k
                                  std::forward<Args>(args)...);
687
19.9k
        m_has_value = false;
688
19.9k
    }
689
690
    void destroy_value() noexcept
691
40.1M
    {
692
40.1M
        scn::detail::destroy_at(value_ptr());
693
40.1M
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::destroy_value()
Line
Count
Source
691
151k
    {
692
151k
        scn::detail::destroy_at(value_ptr());
693
151k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, false>::destroy_value()
Line
Count
Source
691
842
    {
692
842
        scn::detail::destroy_at(value_ptr());
693
842
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::destroy_value()
Line
Count
Source
691
60
    {
692
60
        scn::detail::destroy_at(value_ptr());
693
60
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, false>::destroy_value()
Line
Count
Source
691
19.6M
    {
692
19.6M
        scn::detail::destroy_at(value_ptr());
693
19.6M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::destroy_value()
scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::destroy_value()
Line
Count
Source
691
311k
    {
692
311k
        scn::detail::destroy_at(value_ptr());
693
311k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::destroy_value()
scn::v3::detail::expected_storage_base<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::destroy_value()
Line
Count
Source
691
309k
    {
692
309k
        scn::detail::destroy_at(value_ptr());
693
309k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::destroy_value()
scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::destroy_value()
Line
Count
Source
691
724
    {
692
724
        scn::detail::destroy_at(value_ptr());
693
724
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::destroy_value()
scn::v3::detail::expected_storage_base<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::destroy_value()
Line
Count
Source
691
724
    {
692
724
        scn::detail::destroy_at(value_ptr());
693
724
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::destroy_value()
Line
Count
Source
691
152k
    {
692
152k
        scn::detail::destroy_at(value_ptr());
693
152k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, false>::destroy_value()
Line
Count
Source
691
19.6M
    {
692
19.6M
        scn::detail::destroy_at(value_ptr());
693
19.6M
    }
694
    void destroy_unexpected() noexcept
695
218k
    {
696
218k
        scn::detail::destroy_at(unexpected_ptr());
697
218k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::destroy_unexpected()
Line
Count
Source
695
17.5k
    {
696
17.5k
        scn::detail::destroy_at(unexpected_ptr());
697
17.5k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, false>::destroy_unexpected()
Line
Count
Source
695
7.53k
    {
696
7.53k
        scn::detail::destroy_at(unexpected_ptr());
697
7.53k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::destroy_unexpected()
Line
Count
Source
695
16.6k
    {
696
16.6k
        scn::detail::destroy_at(unexpected_ptr());
697
16.6k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, false>::destroy_unexpected()
Line
Count
Source
695
36.6k
    {
696
36.6k
        scn::detail::destroy_at(unexpected_ptr());
697
36.6k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::destroy_unexpected()
scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::destroy_unexpected()
Line
Count
Source
695
8.86k
    {
696
8.86k
        scn::detail::destroy_at(unexpected_ptr());
697
8.86k
    }
scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::destroy_unexpected()
Line
Count
Source
695
16
    {
696
16
        scn::detail::destroy_at(unexpected_ptr());
697
16
    }
scn::v3::detail::expected_storage_base<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::destroy_unexpected()
Line
Count
Source
695
9.25k
    {
696
9.25k
        scn::detail::destroy_at(unexpected_ptr());
697
9.25k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::destroy_unexpected()
scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::destroy_unexpected()
Line
Count
Source
695
46.0k
    {
696
46.0k
        scn::detail::destroy_at(unexpected_ptr());
697
46.0k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::destroy_unexpected()
scn::v3::detail::expected_storage_base<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::destroy_unexpected()
Line
Count
Source
695
46.0k
    {
696
46.0k
        scn::detail::destroy_at(unexpected_ptr());
697
46.0k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::destroy_unexpected()
Line
Count
Source
695
9.99k
    {
696
9.99k
        scn::detail::destroy_at(unexpected_ptr());
697
9.99k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, false>::destroy_unexpected()
Line
Count
Source
695
19.9k
    {
696
19.9k
        scn::detail::destroy_at(unexpected_ptr());
697
19.9k
    }
698
699
private:
700
    T* value_ptr() noexcept
701
120M
    {
702
120M
        return reinterpret_cast<T*>(SCN_ASSUME_ALIGNED(m_memory, alignof(T)));
703
120M
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::value_ptr()
Line
Count
Source
701
454k
    {
702
454k
        return reinterpret_cast<T*>(SCN_ASSUME_ALIGNED(m_memory, alignof(T)));
703
454k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, false>::value_ptr()
Line
Count
Source
701
1.68k
    {
702
1.68k
        return reinterpret_cast<T*>(SCN_ASSUME_ALIGNED(m_memory, alignof(T)));
703
1.68k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::value_ptr()
Line
Count
Source
701
120
    {
702
120
        return reinterpret_cast<T*>(SCN_ASSUME_ALIGNED(m_memory, alignof(T)));
703
120
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, false>::value_ptr()
Line
Count
Source
701
58.8M
    {
702
58.8M
        return reinterpret_cast<T*>(SCN_ASSUME_ALIGNED(m_memory, alignof(T)));
703
58.8M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::value_ptr()
scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::value_ptr()
Line
Count
Source
701
934k
    {
702
934k
        return reinterpret_cast<T*>(SCN_ASSUME_ALIGNED(m_memory, alignof(T)));
703
934k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::value_ptr()
scn::v3::detail::expected_storage_base<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::value_ptr()
Line
Count
Source
701
929k
    {
702
929k
        return reinterpret_cast<T*>(SCN_ASSUME_ALIGNED(m_memory, alignof(T)));
703
929k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::value_ptr()
scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::value_ptr()
Line
Count
Source
701
2.17k
    {
702
2.17k
        return reinterpret_cast<T*>(SCN_ASSUME_ALIGNED(m_memory, alignof(T)));
703
2.17k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::value_ptr()
scn::v3::detail::expected_storage_base<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::value_ptr()
Line
Count
Source
701
2.17k
    {
702
2.17k
        return reinterpret_cast<T*>(SCN_ASSUME_ALIGNED(m_memory, alignof(T)));
703
2.17k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::value_ptr()
Line
Count
Source
701
458k
    {
702
458k
        return reinterpret_cast<T*>(SCN_ASSUME_ALIGNED(m_memory, alignof(T)));
703
458k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, false>::value_ptr()
Line
Count
Source
701
58.8M
    {
702
58.8M
        return reinterpret_cast<T*>(SCN_ASSUME_ALIGNED(m_memory, alignof(T)));
703
58.8M
    }
704
    const T* value_ptr() const noexcept
705
    {
706
        return reinterpret_cast<const T*>(
707
            SCN_ASSUME_ALIGNED(m_memory, alignof(T)));
708
    }
709
710
    SCN_GCC_PUSH
711
    SCN_GCC_IGNORE("-Wcast-align")
712
    unexpected<E>* unexpected_ptr() noexcept
713
547k
    {
714
547k
        return reinterpret_cast<unexpected<E>*>(
715
547k
            SCN_ASSUME_ALIGNED(m_memory, alignof(unexpected<E>)));
716
547k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::unexpected_ptr()
Line
Count
Source
713
35.0k
    {
714
35.0k
        return reinterpret_cast<unexpected<E>*>(
715
35.0k
            SCN_ASSUME_ALIGNED(m_memory, alignof(unexpected<E>)));
716
35.0k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, false>::unexpected_ptr()
Line
Count
Source
713
15.0k
    {
714
15.0k
        return reinterpret_cast<unexpected<E>*>(
715
15.0k
            SCN_ASSUME_ALIGNED(m_memory, alignof(unexpected<E>)));
716
15.0k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::unexpected_ptr()
Line
Count
Source
713
33.3k
    {
714
33.3k
        return reinterpret_cast<unexpected<E>*>(
715
33.3k
            SCN_ASSUME_ALIGNED(m_memory, alignof(unexpected<E>)));
716
33.3k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, false>::unexpected_ptr()
Line
Count
Source
713
73.3k
    {
714
73.3k
        return reinterpret_cast<unexpected<E>*>(
715
73.3k
            SCN_ASSUME_ALIGNED(m_memory, alignof(unexpected<E>)));
716
73.3k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::unexpected_ptr()
scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::unexpected_ptr()
Line
Count
Source
713
26.5k
    {
714
26.5k
        return reinterpret_cast<unexpected<E>*>(
715
26.5k
            SCN_ASSUME_ALIGNED(m_memory, alignof(unexpected<E>)));
716
26.5k
    }
scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::unexpected_ptr()
Line
Count
Source
713
48
    {
714
48
        return reinterpret_cast<unexpected<E>*>(
715
48
            SCN_ASSUME_ALIGNED(m_memory, alignof(unexpected<E>)));
716
48
    }
scn::v3::detail::expected_storage_base<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::unexpected_ptr()
Line
Count
Source
713
27.7k
    {
714
27.7k
        return reinterpret_cast<unexpected<E>*>(
715
27.7k
            SCN_ASSUME_ALIGNED(m_memory, alignof(unexpected<E>)));
716
27.7k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::unexpected_ptr()
scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::unexpected_ptr()
Line
Count
Source
713
138k
    {
714
138k
        return reinterpret_cast<unexpected<E>*>(
715
138k
            SCN_ASSUME_ALIGNED(m_memory, alignof(unexpected<E>)));
716
138k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::unexpected_ptr()
scn::v3::detail::expected_storage_base<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::unexpected_ptr()
Line
Count
Source
713
138k
    {
714
138k
        return reinterpret_cast<unexpected<E>*>(
715
138k
            SCN_ASSUME_ALIGNED(m_memory, alignof(unexpected<E>)));
716
138k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::unexpected_ptr()
Line
Count
Source
713
19.9k
    {
714
19.9k
        return reinterpret_cast<unexpected<E>*>(
715
19.9k
            SCN_ASSUME_ALIGNED(m_memory, alignof(unexpected<E>)));
716
19.9k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, false>::unexpected_ptr()
Line
Count
Source
713
39.9k
    {
714
39.9k
        return reinterpret_cast<unexpected<E>*>(
715
39.9k
            SCN_ASSUME_ALIGNED(m_memory, alignof(unexpected<E>)));
716
39.9k
    }
717
    const unexpected<E>* unexpected_ptr() const noexcept
718
    {
719
        return reinterpret_cast<const unexpected<E>*>(
720
            SCN_ASSUME_ALIGNED(m_memory, alignof(unexpected<E>)));
721
    }
722
    SCN_GCC_POP
723
724
    static constexpr std::size_t required_size =
725
        detail::max(sizeof(T), sizeof(unexpected<E>));
726
    static constexpr std::size_t required_alignment =
727
        detail::max(alignof(T), alignof(unexpected<E>));
728
729
    alignas(required_alignment) unsigned char m_memory[required_size];
730
    bool m_has_value;
731
};
732
733
template <typename E>
734
struct SCN_TRIVIAL_ABI expected_storage_base<void, E, false> {
735
    constexpr expected_storage_base() noexcept : m_has_value(true) {}
736
737
    explicit constexpr expected_storage_base(deferred_init_tag_t) noexcept
738
        : m_has_value(false)
739
    {
740
    }
741
742
    explicit constexpr expected_storage_base(std::in_place_t) noexcept
743
        : m_has_value(true)
744
    {
745
    }
746
747
    template <typename... Args,
748
              typename = std::enable_if_t<std::is_constructible_v<E, Args...>>>
749
    explicit constexpr expected_storage_base(
750
        unexpect_t,
751
        Args&&... args) noexcept(std::is_nothrow_constructible_v<E, Args...>)
752
        : m_has_value(false)
753
    {
754
        construct_unexpected(std::in_place, std::forward<Args>(args)...);
755
    }
756
757
    ~expected_storage_base()
758
    {
759
        if (!has_value()) {
760
            destroy_unexpected();
761
        }
762
    }
763
764
    constexpr unexpected<E>& get_unexpected() & noexcept
765
    {
766
        return *unexpected_ptr();
767
    }
768
    constexpr const unexpected<E>& get_unexpected() const& noexcept
769
    {
770
        return *unexpected_ptr();
771
    }
772
    constexpr unexpected<E>&& get_unexpected() && noexcept
773
    {
774
        return std::move(*unexpected_ptr());
775
    }
776
    constexpr const unexpected<E>&& get_unexpected() const&& noexcept
777
    {
778
        return std::move(*unexpected_ptr());
779
    }
780
781
    SCN_NODISCARD constexpr bool has_value() const noexcept
782
    {
783
        return m_has_value;
784
    }
785
786
    template <typename... Args>
787
    constexpr void construct(Args&&...) noexcept
788
    {
789
        m_has_value = true;
790
    }
791
    template <typename... Args>
792
    void construct_unexpected(Args&&... args) noexcept(
793
        std::is_nothrow_constructible_v<E, Args...>)
794
    {
795
        scn::detail::construct_at(unexpected_ptr(),
796
                                  std::forward<Args>(args)...);
797
        m_has_value = false;
798
    }
799
800
    static constexpr void destroy_value() noexcept {}
801
    void destroy_unexpected() noexcept
802
    {
803
        scn::detail::destroy_at(unexpected_ptr());
804
    }
805
806
private:
807
    SCN_GCC_PUSH
808
    SCN_GCC_IGNORE("-Wcast-align")
809
    unexpected<E>* unexpected_ptr()
810
    {
811
        return reinterpret_cast<unexpected<E>*>(m_memory);
812
    }
813
    const unexpected<E>* unexpected_ptr() const
814
    {
815
        return reinterpret_cast<const unexpected<E>*>(m_memory);
816
    }
817
    SCN_GCC_POP
818
819
    static constexpr std::size_t required_size = sizeof(unexpected<E>);
820
    static constexpr std::size_t required_alignment = alignof(unexpected<E>);
821
822
    alignas(required_alignment) unsigned char m_memory[required_size];
823
    bool m_has_value;
824
};
825
826
template <typename T, typename U>
827
using is_void_or = std::conditional_t<std::is_void_v<T>, std::true_type, U>;
828
829
template <typename T,
830
          typename E,
831
          bool IsTriviallyCopyable =
832
              std::conjunction_v<std::is_trivially_copyable<T>,
833
                                 std::is_trivially_copyable<E>>>
834
struct expected_operations_base;
835
836
template <typename T, typename E>
837
struct SCN_TRIVIAL_ABI expected_operations_base<T, E, true>
838
    : expected_storage_base<T, E> {
839
    using expected_storage_base<T, E>::expected_storage_base;
840
};
841
842
template <typename T, typename E>
843
struct SCN_TRIVIAL_ABI expected_operations_base<T, E, false>
844
    : expected_storage_base<T, E> {
845
    using expected_storage_base<T, E>::expected_storage_base;
846
847
    expected_operations_base(const expected_operations_base& other) noexcept(
848
        std::is_nothrow_copy_constructible_v<T> &&
849
        std::is_nothrow_copy_constructible_v<E>)
850
        : expected_storage_base<T, E>(deferred_init_tag)
851
    {
852
        construct_common(other);
853
    }
854
    expected_operations_base(expected_operations_base&& other) noexcept(
855
        std::is_nothrow_move_constructible_v<T> &&
856
        std::is_nothrow_move_constructible_v<E>)
857
        : expected_storage_base<T, E>(deferred_init_tag)
858
    {
859
        construct_common(std::move(other));
860
    }
861
862
    expected_operations_base&
863
    operator=(const expected_operations_base& other) noexcept(
864
        noexcept(assign_common(other)))
865
    {
866
        assign_common(other);
867
        return *this;
868
    }
869
    expected_operations_base&
870
    operator=(expected_operations_base&& other) noexcept(
871
        noexcept(assign_common(std::move(other))))
872
    {
873
        assign_common(std::move(other));
874
        return *this;
875
    }
876
877
    ~expected_operations_base() = default;
878
879
private:
880
    template <typename Other>
881
    void construct_common(Other&& other) noexcept(
882
        noexcept(expected_storage_base<T, E>::construct(
883
            std::forward<Other>(other).get_value())) &&
884
        noexcept(expected_storage_base<T, E>::construct_unexpected(
885
            std::forward<Other>(other).get_unexpected())))
886
    {
887
        if (other.has_value()) {
888
            this->construct(std::forward<Other>(other).get_value());
889
        }
890
        else {
891
            this->construct_unexpected(
892
                std::forward<Other>(other).get_unexpected());
893
        }
894
    }
895
896
    template <typename Other>
897
    void assign_common(Other&& other) noexcept(
898
        noexcept(reassign_value(std::forward<Other>(other))) &&
899
        noexcept(reassign_unexpected(std::forward<Other>(other))) &&
900
        noexcept(assign_value_over_unexpected(std::forward<Other>(other))) &&
901
        noexcept(assign_unexpected_over_value(std::forward<Other>(other))))
902
    {
903
        if (this->has_value()) {
904
            if (other.has_value()) {
905
                return reassign_value(std::forward<Other>(other));
906
            }
907
            return assign_unexpected_over_value(std::forward<Other>(other));
908
        }
909
910
        if (other.has_value()) {
911
            return assign_value_over_unexpected(std::forward<Other>(other));
912
        }
913
        return reassign_unexpected(std::forward<Other>(other));
914
    }
915
916
    template <typename Other>
917
    void reassign_value(Other&& other) noexcept(
918
        std::is_nothrow_assignable_v<
919
            T,
920
            decltype(std::forward<Other>(other).get_value())>)
921
    {
922
        this->get_value() = std::forward<Other>(other).get_value();
923
    }
924
925
    template <typename Other>
926
    void reassign_unexpected(Other&& other) noexcept(
927
        std::is_nothrow_assignable_v<
928
            E,
929
            decltype(std::forward<Other>(other).get_unexpected())>)
930
    {
931
        this->get_unexpected() = std::forward<Other>(other).get_unexpected();
932
    }
933
934
#if SCN_HAS_EXCEPTIONS
935
    void assign_value_over_unexpected(
936
        const expected_operations_base&
937
            other) noexcept(std::is_nothrow_copy_constructible_v<T> ||
938
                            std::is_nothrow_move_constructible_v<T>)
939
    {
940
        if constexpr (std::is_nothrow_copy_constructible_v<T>) {
941
            this->destroy_unexpected();
942
            this->construct(other.get_value());
943
        }
944
        else if constexpr (std::is_nothrow_move_constructible_v<T>) {
945
            T tmp = other.get_value();
946
            this->destroy_unexpected();
947
            this->construct(std::move(tmp));
948
        }
949
        else {
950
            auto tmp = std::move(this->get_unexpecetd());
951
            this->destroy_unexpected();
952
953
            try {
954
                this->construct(other.get());
955
            }
956
            catch (...) {
957
                this->construct_unexpected(std::move(tmp));
958
                throw;
959
            }
960
        }
961
    }
962
963
    void
964
    assign_value_over_unexpected(expected_operations_base&& other) noexcept(
965
        std::is_nothrow_move_constructible_v<T>)
966
    {
967
        if constexpr (std::is_nothrow_move_constructible_v<T>) {
968
            this->destroy_unexpected();
969
            this->construct(std::move(other).get_value());
970
        }
971
        else {
972
            auto tmp = std::move(this->get_unexpected());
973
            this->destroy_unexpected();
974
975
            try {
976
                this->construct(std::move(other).get_value());
977
            }
978
            catch (...) {
979
                this->construct_unexpected(std::move(tmp));
980
                throw;
981
            }
982
        }
983
    }
984
#else
985
    template <typename Other>
986
    void assing_value_over_unexpected(Other&& other) noexcept
987
    {
988
        this->destroy_unexpected();
989
        this->construct_value(std::forward<Other>(other).get_value());
990
    }
991
#endif
992
993
    template <typename Other>
994
    void assign_unexpected_over_value(Other&& other) noexcept(
995
        std::is_nothrow_constructible_v<
996
            E,
997
            decltype(std::forward<Other>(other).get_unexpected())>)
998
    {
999
        this->destroy_value();
1000
        this->construct_unexpected(std::forward<Other>(other).get_unexpected());
1001
    }
1002
};
1003
1004
/*
1005
 * Base class trickery to conditionally mark copy and move
1006
 * constructors of an expected as =deleted.
1007
 *
1008
 * We need to do this, because otherwise utilities like
1009
 * std::is_copy_constructible wouldn't work for expected: the
1010
 * constructors need to be explicitly =deleted, not just cause a
1011
 * compiler error when trying to copy a value of a non-copyable
1012
 * type.
1013
 *
1014
 * Rationale for doing this with base classes is above.
1015
 */
1016
template <typename T,
1017
          typename E,
1018
          bool EnableCopy = (std::is_copy_constructible_v<T> &&
1019
                             std::is_copy_constructible_v<E>),
1020
          bool EnableMove = (std::is_move_constructible_v<T> &&
1021
                             std::is_move_constructible_v<E>)>
1022
struct expected_delete_ctor_base;
1023
1024
// Implementation for types that are both copy and move
1025
// constructible: Copy and move constructors are =defaulted
1026
template <typename T, typename E>
1027
struct SCN_TRIVIAL_ABI expected_delete_ctor_base<T, E, true, true> {
1028
    expected_delete_ctor_base() = default;
1029
    expected_delete_ctor_base& operator=(const expected_delete_ctor_base&) =
1030
        default;
1031
    expected_delete_ctor_base& operator=(expected_delete_ctor_base&&) = default;
1032
    ~expected_delete_ctor_base() = default;
1033
1034
    expected_delete_ctor_base(const expected_delete_ctor_base&) = default;
1035
    expected_delete_ctor_base(expected_delete_ctor_base&&) = default;
1036
};
1037
1038
// Implementation for types that are neither copy nor move
1039
// constructible: Copy and move constructors are =deleted
1040
template <typename T, typename E>
1041
struct SCN_TRIVIAL_ABI expected_delete_ctor_base<T, E, false, false> {
1042
    expected_delete_ctor_base() = default;
1043
    expected_delete_ctor_base& operator=(const expected_delete_ctor_base&) =
1044
        default;
1045
    expected_delete_ctor_base& operator=(expected_delete_ctor_base&&) = default;
1046
    ~expected_delete_ctor_base() = default;
1047
1048
    expected_delete_ctor_base(const expected_delete_ctor_base&) = delete;
1049
    expected_delete_ctor_base(expected_delete_ctor_base&&) = delete;
1050
};
1051
1052
// Implementation for types that are move constructible, but not
1053
// copy constructible Copy constructor is =deleted, but move
1054
// constructor is =defaulted
1055
template <typename T, typename E>
1056
struct SCN_TRIVIAL_ABI expected_delete_ctor_base<T, E, false, true> {
1057
    expected_delete_ctor_base() = default;
1058
    expected_delete_ctor_base& operator=(const expected_delete_ctor_base&) =
1059
        default;
1060
    expected_delete_ctor_base& operator=(expected_delete_ctor_base&&) = default;
1061
    ~expected_delete_ctor_base() = default;
1062
1063
    expected_delete_ctor_base(const expected_delete_ctor_base&) = delete;
1064
    expected_delete_ctor_base(expected_delete_ctor_base&&) = default;
1065
};
1066
1067
template <typename T, typename E>
1068
struct SCN_TRIVIAL_ABI expected_delete_ctor_base<T, E, true, false> {
1069
    static_assert(dependent_false<T>::value,
1070
                  "Nonsensical type: copy constructible, but not move "
1071
                  "constructible");
1072
};
1073
1074
// Same as above, but for assignment
1075
template <
1076
    typename T,
1077
    typename E,
1078
    bool EnableCopy =
1079
        (std::is_copy_constructible_v<T> && std::is_copy_constructible_v<E> &&
1080
         std::is_copy_assignable_v<T> && std::is_copy_assignable_v<E>),
1081
    bool EnableMove =
1082
        (std::is_move_constructible_v<T> && std::is_move_constructible_v<E> &&
1083
         std::is_move_assignable_v<T> && std::is_move_assignable_v<E>)>
1084
struct expected_delete_assign_base;
1085
1086
template <typename T, typename E>
1087
struct SCN_TRIVIAL_ABI expected_delete_assign_base<T, E, true, true> {
1088
    expected_delete_assign_base() = default;
1089
    expected_delete_assign_base(const expected_delete_assign_base&) = default;
1090
    expected_delete_assign_base(expected_delete_assign_base&&) = default;
1091
    ~expected_delete_assign_base() = default;
1092
1093
    expected_delete_assign_base& operator=(const expected_delete_assign_base&) =
1094
        default;
1095
    expected_delete_assign_base& operator=(expected_delete_assign_base&&) =
1096
        default;
1097
};
1098
1099
template <typename T, typename E>
1100
struct SCN_TRIVIAL_ABI expected_delete_assign_base<T, E, false, false> {
1101
    expected_delete_assign_base() = default;
1102
    expected_delete_assign_base(const expected_delete_assign_base&) = default;
1103
    expected_delete_assign_base(expected_delete_assign_base&&) = default;
1104
    ~expected_delete_assign_base() = default;
1105
1106
    expected_delete_assign_base& operator=(const expected_delete_assign_base&) =
1107
        delete;
1108
    expected_delete_assign_base& operator=(expected_delete_assign_base&&) =
1109
        delete;
1110
};
1111
1112
template <typename T, typename E>
1113
struct SCN_TRIVIAL_ABI expected_delete_assign_base<T, E, false, true> {
1114
    expected_delete_assign_base() = default;
1115
    expected_delete_assign_base(const expected_delete_assign_base&) = default;
1116
    expected_delete_assign_base(expected_delete_assign_base&&) = default;
1117
    ~expected_delete_assign_base() = default;
1118
1119
    expected_delete_assign_base& operator=(const expected_delete_assign_base&) =
1120
        delete;
1121
    expected_delete_assign_base& operator=(expected_delete_assign_base&&) =
1122
        default;
1123
};
1124
1125
template <typename T, typename E>
1126
struct SCN_TRIVIAL_ABI expected_delete_assign_base<T, E, true, false> {
1127
    static_assert(dependent_false<T>::value,
1128
                  "Nonsensical type: copy assignable, but not move "
1129
                  "assignable");
1130
};
1131
1132
struct non_default_ctor_tag_t {};
1133
1134
/*
1135
 * Same as above, but for the default constructor
1136
 *
1137
 * The constructor taking a non_default_ctor_tag_t is needed, to
1138
 * signal that we're not default constructing.
1139
 */
1140
template <typename T,
1141
          typename E,
1142
          bool = std::is_default_constructible_v<T> || std::is_void_v<T>>
1143
struct SCN_TRIVIAL_ABI expected_default_ctor_base {
1144
    constexpr expected_default_ctor_base() = default;
1145
    constexpr explicit expected_default_ctor_base(
1146
        non_default_ctor_tag_t) noexcept
1147
665M
    {
1148
665M
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
5.02M
    {
1148
5.02M
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, char>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
8.37k
    {
1148
8.37k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, int>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
432k
    {
1148
432k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
374k
    {
1148
374k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, double>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
815k
    {
1148
815k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, bool>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
8.37k
    {
1148
8.37k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, void*>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
8.37k
    {
1148
8.37k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
169k
    {
1148
169k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
8.37k
    {
1148
8.37k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
169k
    {
1148
169k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
40.1M
    {
1148
40.1M
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
16.7k
    {
1148
16.7k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
99.1k
    {
1148
99.1k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
99.0k
    {
1148
99.0k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
110k
    {
1148
110k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, bool>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
16.7k
    {
1148
16.7k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void*>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
16.7k
    {
1148
16.7k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
16.7k
    {
1148
16.7k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
19.6M
    {
1148
19.6M
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
19.6M
    {
1148
19.6M
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
21.4M
    {
1148
21.4M
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
49.9M
    {
1148
49.9M
    }
scn::v3::detail::expected_default_ctor_base<char const*, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
28.5M
    {
1148
28.5M
    }
scn::v3::detail::expected_default_ctor_base<wchar_t const*, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
97.6M
    {
1148
97.6M
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::eof_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
22.3M
    {
1148
22.3M
    }
Unexecuted instantiation: scn::v3::detail::expected_default_ctor_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v3::detail::expected_default_ctor_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
scn::v3::detail::expected_default_ctor_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, long>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
6.66M
    {
1148
6.66M
    }
Unexecuted instantiation: scn::v3::detail::expected_default_ctor_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v3::detail::expected_default_ctor_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v3::detail::expected_default_ctor_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v3::detail::expected_default_ctor_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v3::detail::expected_default_ctor_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
scn::v3::detail::expected_default_ctor_base<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::parse_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
35.0M
    {
1148
35.0M
    }
scn::v3::detail::expected_default_ctor_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
4.74M
    {
1148
4.74M
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::impl::eof_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
2.16M
    {
1148
2.16M
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
2.16M
    {
1148
2.16M
    }
scn::v3::detail::expected_default_ctor_base<std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
320k
    {
1148
320k
    }
scn::v3::detail::expected_default_ctor_base<char const*, scn::v3::impl::eof_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
11.1M
    {
1148
11.1M
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::eof_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
8.43k
    {
1148
8.43k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
12.7k
    {
1148
12.7k
    }
scn::v3::detail::expected_default_ctor_base<std::__1::pair<char const*, long>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
6.71M
    {
1148
6.71M
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::parse_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
8.82k
    {
1148
8.82k
    }
scn::v3::detail::expected_default_ctor_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
1.51k
    {
1148
1.51k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::impl::eof_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
1.14k
    {
1148
1.14k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
1.14k
    {
1148
1.14k
    }
scn::v3::detail::expected_default_ctor_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
16
    {
1148
16
    }
scn::v3::detail::expected_default_ctor_base<char const*, scn::v3::impl::parse_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
18.6M
    {
1148
18.6M
    }
scn::v3::detail::expected_default_ctor_base<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
4.58M
    {
1148
4.58M
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::impl::eof_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
2.16M
    {
1148
2.16M
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
2.16M
    {
1148
2.16M
    }
scn::v3::detail::expected_default_ctor_base<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
319k
    {
1148
319k
    }
scn::v3::detail::expected_default_ctor_base<long, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
79.9M
    {
1148
79.9M
    }
Unexecuted instantiation: scn::v3::detail::expected_default_ctor_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
scn::v3::detail::expected_default_ctor_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
2.33M
    {
1148
2.33M
    }
scn::v3::detail::expected_default_ctor_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
364
    {
1148
364
    }
scn::v3::detail::expected_default_ctor_base<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
2.34M
    {
1148
2.34M
    }
scn::v3::detail::expected_default_ctor_base<std::__1::regex_constants::syntax_option_type, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
10.3k
    {
1148
10.3k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::eof_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
22.0M
    {
1148
22.0M
    }
Unexecuted instantiation: scn::v3::detail::expected_default_ctor_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v3::detail::expected_default_ctor_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
scn::v3::detail::expected_default_ctor_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
16.2M
    {
1148
16.2M
    }
Unexecuted instantiation: scn::v3::detail::expected_default_ctor_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v3::detail::expected_default_ctor_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v3::detail::expected_default_ctor_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v3::detail::expected_default_ctor_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v3::detail::expected_default_ctor_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
scn::v3::detail::expected_default_ctor_base<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::parse_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
3.80M
    {
1148
3.80M
    }
scn::v3::detail::expected_default_ctor_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
631k
    {
1148
631k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::impl::eof_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
351k
    {
1148
351k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
351k
    {
1148
351k
    }
scn::v3::detail::expected_default_ctor_base<std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
46.7k
    {
1148
46.7k
    }
scn::v3::detail::expected_default_ctor_base<wchar_t const*, scn::v3::impl::eof_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
41.8M
    {
1148
41.8M
    }
Unexecuted instantiation: scn::v3::detail::expected_default_ctor_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::eof_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v3::detail::expected_default_ctor_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
scn::v3::detail::expected_default_ctor_base<std::__1::pair<wchar_t const*, long>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
31.9M
    {
1148
31.9M
    }
Unexecuted instantiation: scn::v3::detail::expected_default_ctor_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::parse_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v3::detail::expected_default_ctor_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v3::detail::expected_default_ctor_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::impl::eof_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v3::detail::expected_default_ctor_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v3::detail::expected_default_ctor_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
scn::v3::detail::expected_default_ctor_base<wchar_t const*, scn::v3::impl::parse_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
3.42M
    {
1148
3.42M
    }
scn::v3::detail::expected_default_ctor_base<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
668k
    {
1148
668k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::impl::eof_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
379k
    {
1148
379k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
379k
    {
1148
379k
    }
scn::v3::detail::expected_default_ctor_base<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
46.7k
    {
1148
46.7k
    }
Unexecuted instantiation: scn::v3::detail::expected_default_ctor_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
scn::v3::detail::expected_default_ctor_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
277k
    {
1148
277k
    }
Unexecuted instantiation: scn::v3::detail::expected_default_ctor_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
scn::v3::detail::expected_default_ctor_base<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
287k
    {
1148
287k
    }
Unexecuted instantiation: scn::v3::detail::expected_default_ctor_base<wchar_t, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, signed char>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
337k
    {
1148
337k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned char>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
324k
    {
1148
324k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long long>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
431k
    {
1148
431k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned long long>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
369k
    {
1148
369k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
4.78M
    {
1148
4.78M
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, signed char>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
339k
    {
1148
339k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned char>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
325k
    {
1148
325k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, int>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
424k
    {
1148
424k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned int>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
367k
    {
1148
367k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long long>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
431k
    {
1148
431k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned long long>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
371k
    {
1148
371k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, signed char>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
82.3k
    {
1148
82.3k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned char>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
82.2k
    {
1148
82.2k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long long>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
82.5k
    {
1148
82.5k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned long long>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
82.4k
    {
1148
82.4k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
20.3M
    {
1148
20.3M
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, signed char>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
82.3k
    {
1148
82.3k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned char>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
82.2k
    {
1148
82.2k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, int>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
82.4k
    {
1148
82.4k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned int>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
82.2k
    {
1148
82.2k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long long>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
82.5k
    {
1148
82.5k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned long long>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
82.4k
    {
1148
82.4k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
162k
    {
1148
162k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
19.6M
    {
1148
19.6M
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, float>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
746k
    {
1148
746k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long double>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
818k
    {
1148
818k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, float>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
744k
    {
1148
744k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, double>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
805k
    {
1148
805k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long double>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
815k
    {
1148
815k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, float>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
93.1k
    {
1148
93.1k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long double>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
93.4k
    {
1148
93.4k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, float>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
93.1k
    {
1148
93.1k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, double>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
93.2k
    {
1148
93.2k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long double>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
93.4k
    {
1148
93.4k
    }
1149
};
1150
template <typename T, typename E>
1151
struct SCN_TRIVIAL_ABI expected_default_ctor_base<T, E, false> {
1152
    constexpr expected_default_ctor_base() = delete;
1153
    constexpr explicit expected_default_ctor_base(
1154
        non_default_ctor_tag_t) noexcept
1155
    {
1156
    }
1157
};
1158
1159
template <typename T>
1160
using remove_cvref_t = std::remove_cv_t<std::remove_reference_t<T>>;
1161
1162
template <typename T>
1163
struct is_expected_impl : std::false_type {};
1164
template <typename T, typename E>
1165
struct is_expected_impl<expected<T, E>> : std::true_type {};
1166
template <typename T>
1167
using is_expected = is_expected_impl<remove_cvref_t<T>>;
1168
1169
template <typename Exp>
1170
using is_exp_void = std::is_void<typename remove_cvref_t<Exp>::value_type>;
1171
1172
template <typename Exp>
1173
using expected_value_type = typename remove_cvref_t<Exp>::value_type;
1174
1175
template <
1176
    typename F,
1177
    typename... Args,
1178
    typename = std::void_t<decltype(SCN_DECLVAL(F&&)(SCN_DECLVAL(Args&&)...))>>
1179
constexpr decltype(auto) trivial_invoke(F&& f, Args&&... args) noexcept(
1180
    noexcept(std::forward<F>(f)(std::forward<Args>(args)...)))
1181
6.14M
{
1182
6.14M
    return std::forward<F>(f)(std::forward<Args>(args)...);
1183
6.14M
}
decltype(auto) scn::v3::detail::trivial_invoke<scn::v3::scan_error (&)(scn::v3::impl::eof_error), scn::v3::impl::eof_error, void>(scn::v3::scan_error (&)(scn::v3::impl::eof_error), scn::v3::impl::eof_error&&)
Line
Count
Source
1181
130k
{
1182
130k
    return std::forward<F>(f)(std::forward<Args>(args)...);
1183
130k
}
decltype(auto) scn::v3::detail::trivial_invoke<scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error), scn::v3::impl::eof_error, void>(scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error), scn::v3::impl::eof_error&&)
Line
Count
Source
1181
224k
{
1182
224k
    return std::forward<F>(f)(std::forward<Args>(args)...);
1183
224k
}
decltype(auto) scn::v3::detail::trivial_invoke<scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}, scn::v3::impl::parse_error, void>(scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}&&, scn::v3::impl::parse_error&&)
Line
Count
Source
1181
382k
{
1182
382k
    return std::forward<F>(f)(std::forward<Args>(args)...);
1183
382k
}
decltype(auto) scn::v3::detail::trivial_invoke<scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}, scn::v3::impl::parse_error&, void>(scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}&&, scn::v3::impl::parse_error&)
Line
Count
Source
1181
5.41M
{
1182
5.41M
    return std::forward<F>(f)(std::forward<Args>(args)...);
1183
5.41M
}
Unexecuted instantiation: decltype(auto) scn::v3::detail::trivial_invoke<scn::v3::scan_error (&)(scn::v3::impl::eof_error), scn::v3::impl::eof_error const&, void>(scn::v3::scan_error (&)(scn::v3::impl::eof_error), scn::v3::impl::eof_error const&)
Unexecuted instantiation: decltype(auto) scn::v3::detail::trivial_invoke<scn::v3::scan_error (&)(scn::v3::impl::eof_error), scn::v3::impl::eof_error&, void>(scn::v3::scan_error (&)(scn::v3::impl::eof_error), scn::v3::impl::eof_error&)
Unexecuted instantiation: decltype(auto) scn::v3::detail::trivial_invoke<scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error), scn::v3::impl::eof_error const&, void>(scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error), scn::v3::impl::eof_error const&)
Unexecuted instantiation: decltype(auto) scn::v3::detail::trivial_invoke<scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error), scn::v3::impl::eof_error&, void>(scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error), scn::v3::impl::eof_error&)
Unexecuted instantiation: decltype(auto) scn::v3::detail::trivial_invoke<scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}, scn::v3::impl::parse_error const&, void>(scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}&&, scn::v3::impl::parse_error const&)
1184
1185
// and_then
1186
1187
template <typename Exp,
1188
          typename F,
1189
          std::enable_if_t<!is_exp_void<Exp>::value>* = nullptr,
1190
          typename Ret = decltype(trivial_invoke(SCN_DECLVAL(F),
1191
                                                 *SCN_DECLVAL(Exp)))>
1192
constexpr auto and_then_impl(Exp&& exp, F&& f) noexcept(
1193
    noexcept(trivial_invoke(std::forward<F>(f), *std::forward<Exp>(exp))) &&
1194
    std::is_nothrow_constructible_v<Ret,
1195
                                    unexpect_t,
1196
                                    decltype(std::forward<Exp>(exp).error())>)
1197
{
1198
    static_assert(is_expected<Ret>::value, "F must return an expected");
1199
1200
    return SCN_LIKELY(exp.has_value())
1201
               ? trivial_invoke(std::forward<F>(f), *std::forward<Exp>(exp))
1202
               : Ret(unexpect, std::forward<Exp>(exp).error());
1203
}
1204
template <typename Exp,
1205
          typename F,
1206
          std::enable_if_t<is_exp_void<Exp>::value>* = nullptr,
1207
          typename Ret = decltype(trivial_invoke(SCN_DECLVAL(F)))>
1208
constexpr auto and_then_impl(Exp&& exp, F&& f) noexcept(
1209
    noexcept(trivial_invoke(std::forward<F>(f))) &&
1210
    std::is_nothrow_constructible_v<Ret,
1211
                                    unexpect_t,
1212
                                    decltype(std::forward<Exp>(exp).error())>)
1213
{
1214
    static_assert(is_expected<Ret>::value, "F must return an expected");
1215
1216
    return SCN_LIKELY(exp.has_value())
1217
               ? trivial_invoke(std::forward<F>(f))
1218
               : Ret(unexpect, std::forward<Exp>(exp).error());
1219
}
1220
1221
// or_else
1222
1223
template <typename Exp,
1224
          typename F,
1225
          typename Ret = decltype(trivial_invoke(SCN_DECLVAL(F),
1226
                                                 SCN_DECLVAL(Exp).error()))>
1227
constexpr auto or_else_impl(Exp&& exp, F&& f) noexcept(
1228
    noexcept(trivial_invoke(std::forward<F>(f),
1229
                            std::forward<Exp>(exp).error())) &&
1230
    std::is_nothrow_constructible_v<Ret, decltype(std::forward<Exp>(exp))>)
1231
{
1232
    static_assert(is_expected<Ret>::value, "F must return an expected");
1233
1234
    return SCN_LIKELY(exp.has_value())
1235
               ? Ret(std::forward<Exp>(exp))
1236
               : trivial_invoke(std::forward<F>(f),
1237
                                std::forward<Exp>(exp).error());
1238
}
1239
1240
// transform
1241
1242
template <typename Exp,
1243
          typename F,
1244
          std::enable_if_t<!is_exp_void<Exp>::value>* = nullptr,
1245
          typename Ret = decltype(trivial_invoke(SCN_DECLVAL(F),
1246
                                                 *SCN_DECLVAL(Exp)))>
1247
constexpr auto transform_impl(Exp&& exp, F&& f)
1248
{
1249
    using result = typename remove_cvref_t<Exp>::template rebind<Ret>;
1250
    if constexpr (std::is_void_v<Ret>) {
1251
        if (SCN_LIKELY(exp.has_value())) {
1252
            trivial_invoke(std::forward<F>(f), *std::forward<Exp>(exp));
1253
            return result();
1254
        }
1255
        return result(unexpect, std::forward<Exp>(exp).error());
1256
    }
1257
    else {
1258
        return SCN_LIKELY(exp.has_value())
1259
                   ? result(trivial_invoke(std::forward<F>(f),
1260
                                           *std::forward<Exp>(exp)))
1261
                   : result(unexpect, std::forward<Exp>(exp).error());
1262
    }
1263
}
1264
template <typename Exp,
1265
          typename F,
1266
          std::enable_if_t<is_exp_void<Exp>::value>* = nullptr,
1267
          typename Ret = decltype(trivial_invoke(SCN_DECLVAL(F)))>
1268
constexpr auto transform_impl(Exp&& exp, F&& f)
1269
{
1270
    using result = typename remove_cvref_t<Exp>::template rebind<Ret>;
1271
    if constexpr (std::is_void_v<Ret>) {
1272
        if (SCN_LIKELY(exp.has_value())) {
1273
            trivial_invoke(std::forward<F>(f));
1274
            return result();
1275
        }
1276
        return result(unexpect, std::forward<Exp>(exp).error());
1277
    }
1278
    else {
1279
        return SCN_LIKELY(exp.has_value())
1280
                   ? result(trivial_invoke(std::forward<F>(f)))
1281
                   : result(unexpect, std::forward<Exp>(exp).error());
1282
    }
1283
}
1284
1285
// transform_error
1286
1287
template <typename Exp,
1288
          typename F,
1289
          std::enable_if_t<!is_exp_void<Exp>::value>* = nullptr,
1290
          typename Ret = decltype(trivial_invoke(SCN_DECLVAL(F),
1291
                                                 SCN_DECLVAL(Exp).error()))>
1292
constexpr auto transform_error_impl(Exp&& exp, F&& f)
1293
97.6M
{
1294
97.6M
    if constexpr (std::is_void_v<Ret>) {
1295
97.6M
        using result = expected<expected_value_type<Exp>, monostate>;
1296
97.6M
        if (SCN_LIKELY(exp.has_value())) {
1297
97.6M
            return result(*std::forward<Exp>(exp));
1298
97.6M
        }
1299
1300
97.6M
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1301
97.6M
        return result(unexpect, monostate{});
1302
97.6M
    }
1303
97.6M
    else {
1304
97.6M
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1305
97.6M
        return SCN_LIKELY(exp.has_value())
1306
97.6M
                   ? result(*std::forward<Exp>(exp))
1307
97.6M
                   : result(unexpect,
1308
6.14M
                            trivial_invoke(std::forward<F>(f),
1309
6.14M
                                           std::forward<Exp>(exp).error()));
1310
97.6M
    }
1311
97.6M
}
auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::eof_error>, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::eof_error>&&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Line
Count
Source
1293
4.71M
{
1294
4.71M
    if constexpr (std::is_void_v<Ret>) {
1295
4.71M
        using result = expected<expected_value_type<Exp>, monostate>;
1296
4.71M
        if (SCN_LIKELY(exp.has_value())) {
1297
4.71M
            return result(*std::forward<Exp>(exp));
1298
4.71M
        }
1299
1300
4.71M
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1301
4.71M
        return result(unexpect, monostate{});
1302
4.71M
    }
1303
4.71M
    else {
1304
4.71M
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1305
4.71M
        return SCN_LIKELY(exp.has_value())
1306
4.71M
                   ? result(*std::forward<Exp>(exp))
1307
4.71M
                   : result(unexpect,
1308
55.3k
                            trivial_invoke(std::forward<F>(f),
1309
55.3k
                                           std::forward<Exp>(exp).error()));
1310
4.71M
    }
1311
4.71M
}
auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::eof_error>, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::eof_error>&&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Line
Count
Source
1293
20.2M
{
1294
20.2M
    if constexpr (std::is_void_v<Ret>) {
1295
20.2M
        using result = expected<expected_value_type<Exp>, monostate>;
1296
20.2M
        if (SCN_LIKELY(exp.has_value())) {
1297
20.2M
            return result(*std::forward<Exp>(exp));
1298
20.2M
        }
1299
1300
20.2M
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1301
20.2M
        return result(unexpect, monostate{});
1302
20.2M
    }
1303
20.2M
    else {
1304
20.2M
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1305
20.2M
        return SCN_LIKELY(exp.has_value())
1306
20.2M
                   ? result(*std::forward<Exp>(exp))
1307
20.2M
                   : result(unexpect,
1308
8.76k
                            trivial_invoke(std::forward<F>(f),
1309
8.76k
                                           std::forward<Exp>(exp).error()));
1310
20.2M
    }
1311
20.2M
}
auto scn::v3::detail::transform_error_impl<scn::v3::expected<char const*, scn::v3::impl::eof_error>, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<char const*, scn::v3::impl::eof_error>&&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Line
Count
Source
1293
4.87M
{
1294
4.87M
    if constexpr (std::is_void_v<Ret>) {
1295
4.87M
        using result = expected<expected_value_type<Exp>, monostate>;
1296
4.87M
        if (SCN_LIKELY(exp.has_value())) {
1297
4.87M
            return result(*std::forward<Exp>(exp));
1298
4.87M
        }
1299
1300
4.87M
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1301
4.87M
        return result(unexpect, monostate{});
1302
4.87M
    }
1303
4.87M
    else {
1304
4.87M
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1305
4.87M
        return SCN_LIKELY(exp.has_value())
1306
4.87M
                   ? result(*std::forward<Exp>(exp))
1307
4.87M
                   : result(unexpect,
1308
53.5k
                            trivial_invoke(std::forward<F>(f),
1309
53.5k
                                           std::forward<Exp>(exp).error()));
1310
4.87M
    }
1311
4.87M
}
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>&&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::impl::parse_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>&&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error>, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error>&&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}, (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>&&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}&&)
auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::eof_error>, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::impl::parse_error>(scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::eof_error>&&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error))
Line
Count
Source
1293
8.15M
{
1294
8.15M
    if constexpr (std::is_void_v<Ret>) {
1295
8.15M
        using result = expected<expected_value_type<Exp>, monostate>;
1296
8.15M
        if (SCN_LIKELY(exp.has_value())) {
1297
8.15M
            return result(*std::forward<Exp>(exp));
1298
8.15M
        }
1299
1300
8.15M
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1301
8.15M
        return result(unexpect, monostate{});
1302
8.15M
    }
1303
8.15M
    else {
1304
8.15M
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1305
8.15M
        return SCN_LIKELY(exp.has_value())
1306
8.15M
                   ? result(*std::forward<Exp>(exp))
1307
8.15M
                   : result(unexpect,
1308
72.0k
                            trivial_invoke(std::forward<F>(f),
1309
72.0k
                                           std::forward<Exp>(exp).error()));
1310
8.15M
    }
1311
8.15M
}
auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::impl::eof_error>, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::impl::eof_error>&&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Line
Count
Source
1293
2.16M
{
1294
2.16M
    if constexpr (std::is_void_v<Ret>) {
1295
2.16M
        using result = expected<expected_value_type<Exp>, monostate>;
1296
2.16M
        if (SCN_LIKELY(exp.has_value())) {
1297
2.16M
            return result(*std::forward<Exp>(exp));
1298
2.16M
        }
1299
1300
2.16M
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1301
2.16M
        return result(unexpect, monostate{});
1302
2.16M
    }
1303
2.16M
    else {
1304
2.16M
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1305
2.16M
        return SCN_LIKELY(exp.has_value())
1306
2.16M
                   ? result(*std::forward<Exp>(exp))
1307
2.16M
                   : result(unexpect,
1308
0
                            trivial_invoke(std::forward<F>(f),
1309
0
                                           std::forward<Exp>(exp).error()));
1310
2.16M
    }
1311
2.16M
}
auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::parse_error>, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}, (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::parse_error>&&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}&&)
Line
Count
Source
1293
1.64M
{
1294
1.64M
    if constexpr (std::is_void_v<Ret>) {
1295
1.64M
        using result = expected<expected_value_type<Exp>, monostate>;
1296
1.64M
        if (SCN_LIKELY(exp.has_value())) {
1297
1.64M
            return result(*std::forward<Exp>(exp));
1298
1.64M
        }
1299
1300
1.64M
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1301
1.64M
        return result(unexpect, monostate{});
1302
1.64M
    }
1303
1.64M
    else {
1304
1.64M
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1305
1.64M
        return SCN_LIKELY(exp.has_value())
1306
1.64M
                   ? result(*std::forward<Exp>(exp))
1307
1.64M
                   : result(unexpect,
1308
80.7k
                            trivial_invoke(std::forward<F>(f),
1309
80.7k
                                           std::forward<Exp>(exp).error()));
1310
1.64M
    }
1311
1.64M
}
auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::eof_error>, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::eof_error>&&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Line
Count
Source
1293
3.55k
{
1294
3.55k
    if constexpr (std::is_void_v<Ret>) {
1295
3.55k
        using result = expected<expected_value_type<Exp>, monostate>;
1296
3.55k
        if (SCN_LIKELY(exp.has_value())) {
1297
3.55k
            return result(*std::forward<Exp>(exp));
1298
3.55k
        }
1299
1300
3.55k
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1301
3.55k
        return result(unexpect, monostate{});
1302
3.55k
    }
1303
3.55k
    else {
1304
3.55k
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1305
3.55k
        return SCN_LIKELY(exp.has_value())
1306
3.55k
                   ? result(*std::forward<Exp>(exp))
1307
3.55k
                   : result(unexpect,
1308
90
                            trivial_invoke(std::forward<F>(f),
1309
90
                                           std::forward<Exp>(exp).error()));
1310
3.55k
    }
1311
3.55k
}
auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::eof_error>, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::impl::parse_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::eof_error>&&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error))
Line
Count
Source
1293
2.30k
{
1294
2.30k
    if constexpr (std::is_void_v<Ret>) {
1295
2.30k
        using result = expected<expected_value_type<Exp>, monostate>;
1296
2.30k
        if (SCN_LIKELY(exp.has_value())) {
1297
2.30k
            return result(*std::forward<Exp>(exp));
1298
2.30k
        }
1299
1300
2.30k
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1301
2.30k
        return result(unexpect, monostate{});
1302
2.30k
    }
1303
2.30k
    else {
1304
2.30k
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1305
2.30k
        return SCN_LIKELY(exp.has_value())
1306
2.30k
                   ? result(*std::forward<Exp>(exp))
1307
2.30k
                   : result(unexpect,
1308
214
                            trivial_invoke(std::forward<F>(f),
1309
214
                                           std::forward<Exp>(exp).error()));
1310
2.30k
    }
1311
2.30k
}
auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::impl::eof_error>, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::impl::eof_error>&&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Line
Count
Source
1293
1.14k
{
1294
1.14k
    if constexpr (std::is_void_v<Ret>) {
1295
1.14k
        using result = expected<expected_value_type<Exp>, monostate>;
1296
1.14k
        if (SCN_LIKELY(exp.has_value())) {
1297
1.14k
            return result(*std::forward<Exp>(exp));
1298
1.14k
        }
1299
1300
1.14k
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1301
1.14k
        return result(unexpect, monostate{});
1302
1.14k
    }
1303
1.14k
    else {
1304
1.14k
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1305
1.14k
        return SCN_LIKELY(exp.has_value())
1306
1.14k
                   ? result(*std::forward<Exp>(exp))
1307
1.14k
                   : result(unexpect,
1308
0
                            trivial_invoke(std::forward<F>(f),
1309
0
                                           std::forward<Exp>(exp).error()));
1310
1.14k
    }
1311
1.14k
}
auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::parse_error>, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}, (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::parse_error>&&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}&&)
Line
Count
Source
1293
1.13k
{
1294
1.13k
    if constexpr (std::is_void_v<Ret>) {
1295
1.13k
        using result = expected<expected_value_type<Exp>, monostate>;
1296
1.13k
        if (SCN_LIKELY(exp.has_value())) {
1297
1.13k
            return result(*std::forward<Exp>(exp));
1298
1.13k
        }
1299
1300
1.13k
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1301
1.13k
        return result(unexpect, monostate{});
1302
1.13k
    }
1303
1.13k
    else {
1304
1.13k
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1305
1.13k
        return SCN_LIKELY(exp.has_value())
1306
1.13k
                   ? result(*std::forward<Exp>(exp))
1307
1.13k
                   : result(unexpect,
1308
1.13k
                            trivial_invoke(std::forward<F>(f),
1309
1.13k
                                           std::forward<Exp>(exp).error()));
1310
1.13k
    }
1311
1.13k
}
auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::impl::eof_error>, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::impl::eof_error>&&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Line
Count
Source
1293
2.16M
{
1294
2.16M
    if constexpr (std::is_void_v<Ret>) {
1295
2.16M
        using result = expected<expected_value_type<Exp>, monostate>;
1296
2.16M
        if (SCN_LIKELY(exp.has_value())) {
1297
2.16M
            return result(*std::forward<Exp>(exp));
1298
2.16M
        }
1299
1300
2.16M
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1301
2.16M
        return result(unexpect, monostate{});
1302
2.16M
    }
1303
2.16M
    else {
1304
2.16M
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1305
2.16M
        return SCN_LIKELY(exp.has_value())
1306
2.16M
                   ? result(*std::forward<Exp>(exp))
1307
2.16M
                   : result(unexpect,
1308
0
                            trivial_invoke(std::forward<F>(f),
1309
0
                                           std::forward<Exp>(exp).error()));
1310
2.16M
    }
1311
2.16M
}
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>&&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}, (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}&&)
auto scn::v3::detail::transform_error_impl<scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>&&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Line
Count
Source
1293
2.33M
{
1294
2.33M
    if constexpr (std::is_void_v<Ret>) {
1295
2.33M
        using result = expected<expected_value_type<Exp>, monostate>;
1296
2.33M
        if (SCN_LIKELY(exp.has_value())) {
1297
2.33M
            return result(*std::forward<Exp>(exp));
1298
2.33M
        }
1299
1300
2.33M
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1301
2.33M
        return result(unexpect, monostate{});
1302
2.33M
    }
1303
2.33M
    else {
1304
2.33M
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1305
2.33M
        return SCN_LIKELY(exp.has_value())
1306
2.33M
                   ? result(*std::forward<Exp>(exp))
1307
2.33M
                   : result(unexpect,
1308
0
                            trivial_invoke(std::forward<F>(f),
1309
0
                                           std::forward<Exp>(exp).error()));
1310
2.33M
    }
1311
2.33M
}
auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::parse_error>&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}, (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::parse_error>&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}&&)
Line
Count
Source
1293
2.26M
{
1294
2.26M
    if constexpr (std::is_void_v<Ret>) {
1295
2.26M
        using result = expected<expected_value_type<Exp>, monostate>;
1296
2.26M
        if (SCN_LIKELY(exp.has_value())) {
1297
2.26M
            return result(*std::forward<Exp>(exp));
1298
2.26M
        }
1299
1300
2.26M
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1301
2.26M
        return result(unexpect, monostate{});
1302
2.26M
    }
1303
2.26M
    else {
1304
2.26M
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1305
2.26M
        return SCN_LIKELY(exp.has_value())
1306
2.26M
                   ? result(*std::forward<Exp>(exp))
1307
2.26M
                   : result(unexpect,
1308
2.26M
                            trivial_invoke(std::forward<F>(f),
1309
2.26M
                                           std::forward<Exp>(exp).error()));
1310
2.26M
    }
1311
2.26M
}
auto scn::v3::detail::transform_error_impl<scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>&&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Line
Count
Source
1293
364
{
1294
364
    if constexpr (std::is_void_v<Ret>) {
1295
364
        using result = expected<expected_value_type<Exp>, monostate>;
1296
364
        if (SCN_LIKELY(exp.has_value())) {
1297
364
            return result(*std::forward<Exp>(exp));
1298
364
        }
1299
1300
364
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1301
364
        return result(unexpect, monostate{});
1302
364
    }
1303
364
    else {
1304
364
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1305
364
        return SCN_LIKELY(exp.has_value())
1306
364
                   ? result(*std::forward<Exp>(exp))
1307
364
                   : result(unexpect,
1308
0
                            trivial_invoke(std::forward<F>(f),
1309
0
                                           std::forward<Exp>(exp).error()));
1310
364
    }
1311
364
}
auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::parse_error>&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}, (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::parse_error>&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}&&)
Line
Count
Source
1293
728
{
1294
728
    if constexpr (std::is_void_v<Ret>) {
1295
728
        using result = expected<expected_value_type<Exp>, monostate>;
1296
728
        if (SCN_LIKELY(exp.has_value())) {
1297
728
            return result(*std::forward<Exp>(exp));
1298
728
        }
1299
1300
728
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1301
728
        return result(unexpect, monostate{});
1302
728
    }
1303
728
    else {
1304
728
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1305
728
        return SCN_LIKELY(exp.has_value())
1306
728
                   ? result(*std::forward<Exp>(exp))
1307
728
                   : result(unexpect,
1308
728
                            trivial_invoke(std::forward<F>(f),
1309
728
                                           std::forward<Exp>(exp).error()));
1310
728
    }
1311
728
}
auto scn::v3::detail::transform_error_impl<scn::v3::expected<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>&&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Line
Count
Source
1293
2.34M
{
1294
2.34M
    if constexpr (std::is_void_v<Ret>) {
1295
2.34M
        using result = expected<expected_value_type<Exp>, monostate>;
1296
2.34M
        if (SCN_LIKELY(exp.has_value())) {
1297
2.34M
            return result(*std::forward<Exp>(exp));
1298
2.34M
        }
1299
1300
2.34M
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1301
2.34M
        return result(unexpect, monostate{});
1302
2.34M
    }
1303
2.34M
    else {
1304
2.34M
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1305
2.34M
        return SCN_LIKELY(exp.has_value())
1306
2.34M
                   ? result(*std::forward<Exp>(exp))
1307
2.34M
                   : result(unexpect,
1308
0
                            trivial_invoke(std::forward<F>(f),
1309
0
                                           std::forward<Exp>(exp).error()));
1310
2.34M
    }
1311
2.34M
}
auto scn::v3::detail::transform_error_impl<scn::v3::expected<char const*, scn::v3::impl::parse_error>&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}, (void*)0, scn::v3::scan_error>(scn::v3::expected<char const*, scn::v3::impl::parse_error>&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}&&)
Line
Count
Source
1293
2.24M
{
1294
2.24M
    if constexpr (std::is_void_v<Ret>) {
1295
2.24M
        using result = expected<expected_value_type<Exp>, monostate>;
1296
2.24M
        if (SCN_LIKELY(exp.has_value())) {
1297
2.24M
            return result(*std::forward<Exp>(exp));
1298
2.24M
        }
1299
1300
2.24M
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1301
2.24M
        return result(unexpect, monostate{});
1302
2.24M
    }
1303
2.24M
    else {
1304
2.24M
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1305
2.24M
        return SCN_LIKELY(exp.has_value())
1306
2.24M
                   ? result(*std::forward<Exp>(exp))
1307
2.24M
                   : result(unexpect,
1308
2.24M
                            trivial_invoke(std::forward<F>(f),
1309
2.24M
                                           std::forward<Exp>(exp).error()));
1310
2.24M
    }
1311
2.24M
}
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>&&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::impl::parse_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>&&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error>, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error>&&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}, (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>&&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}&&)
auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::eof_error>, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::impl::parse_error>(scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::eof_error>&&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error))
Line
Count
Source
1293
990k
{
1294
990k
    if constexpr (std::is_void_v<Ret>) {
1295
990k
        using result = expected<expected_value_type<Exp>, monostate>;
1296
990k
        if (SCN_LIKELY(exp.has_value())) {
1297
990k
            return result(*std::forward<Exp>(exp));
1298
990k
        }
1299
1300
990k
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1301
990k
        return result(unexpect, monostate{});
1302
990k
    }
1303
990k
    else {
1304
990k
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1305
990k
        return SCN_LIKELY(exp.has_value())
1306
990k
                   ? result(*std::forward<Exp>(exp))
1307
990k
                   : result(unexpect,
1308
75.8k
                            trivial_invoke(std::forward<F>(f),
1309
75.8k
                                           std::forward<Exp>(exp).error()));
1310
990k
    }
1311
990k
}
auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::impl::eof_error>, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::impl::eof_error>&&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Line
Count
Source
1293
351k
{
1294
351k
    if constexpr (std::is_void_v<Ret>) {
1295
351k
        using result = expected<expected_value_type<Exp>, monostate>;
1296
351k
        if (SCN_LIKELY(exp.has_value())) {
1297
351k
            return result(*std::forward<Exp>(exp));
1298
351k
        }
1299
1300
351k
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1301
351k
        return result(unexpect, monostate{});
1302
351k
    }
1303
351k
    else {
1304
351k
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1305
351k
        return SCN_LIKELY(exp.has_value())
1306
351k
                   ? result(*std::forward<Exp>(exp))
1307
351k
                   : result(unexpect,
1308
0
                            trivial_invoke(std::forward<F>(f),
1309
0
                                           std::forward<Exp>(exp).error()));
1310
351k
    }
1311
351k
}
auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::parse_error>, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}, (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::parse_error>&&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}&&)
Line
Count
Source
1293
303k
{
1294
303k
    if constexpr (std::is_void_v<Ret>) {
1295
303k
        using result = expected<expected_value_type<Exp>, monostate>;
1296
303k
        if (SCN_LIKELY(exp.has_value())) {
1297
303k
            return result(*std::forward<Exp>(exp));
1298
303k
        }
1299
1300
303k
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1301
303k
        return result(unexpect, monostate{});
1302
303k
    }
1303
303k
    else {
1304
303k
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1305
303k
        return SCN_LIKELY(exp.has_value())
1306
303k
                   ? result(*std::forward<Exp>(exp))
1307
303k
                   : result(unexpect,
1308
300k
                            trivial_invoke(std::forward<F>(f),
1309
300k
                                           std::forward<Exp>(exp).error()));
1310
303k
    }
1311
303k
}
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::eof_error>, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::eof_error>&&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
auto scn::v3::detail::transform_error_impl<scn::v3::expected<wchar_t const*, scn::v3::impl::eof_error>, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<wchar_t const*, scn::v3::impl::eof_error>&&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Line
Count
Source
1293
39.9M
{
1294
39.9M
    if constexpr (std::is_void_v<Ret>) {
1295
39.9M
        using result = expected<expected_value_type<Exp>, monostate>;
1296
39.9M
        if (SCN_LIKELY(exp.has_value())) {
1297
39.9M
            return result(*std::forward<Exp>(exp));
1298
39.9M
        }
1299
1300
39.9M
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1301
39.9M
        return result(unexpect, monostate{});
1302
39.9M
    }
1303
39.9M
    else {
1304
39.9M
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1305
39.9M
        return SCN_LIKELY(exp.has_value())
1306
39.9M
                   ? result(*std::forward<Exp>(exp))
1307
39.9M
                   : result(unexpect,
1308
13.0k
                            trivial_invoke(std::forward<F>(f),
1309
13.0k
                                           std::forward<Exp>(exp).error()));
1310
39.9M
    }
1311
39.9M
}
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::eof_error>, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::impl::parse_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::eof_error>&&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::impl::eof_error>, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::impl::eof_error>&&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::parse_error>, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}, (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::parse_error>&&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}&&)
auto scn::v3::detail::transform_error_impl<scn::v3::expected<wchar_t const*, scn::v3::impl::eof_error>, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::impl::parse_error>(scn::v3::expected<wchar_t const*, scn::v3::impl::eof_error>&&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error))
Line
Count
Source
1293
1.04M
{
1294
1.04M
    if constexpr (std::is_void_v<Ret>) {
1295
1.04M
        using result = expected<expected_value_type<Exp>, monostate>;
1296
1.04M
        if (SCN_LIKELY(exp.has_value())) {
1297
1.04M
            return result(*std::forward<Exp>(exp));
1298
1.04M
        }
1299
1300
1.04M
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1301
1.04M
        return result(unexpect, monostate{});
1302
1.04M
    }
1303
1.04M
    else {
1304
1.04M
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1305
1.04M
        return SCN_LIKELY(exp.has_value())
1306
1.04M
                   ? result(*std::forward<Exp>(exp))
1307
1.04M
                   : result(unexpect,
1308
76.0k
                            trivial_invoke(std::forward<F>(f),
1309
76.0k
                                           std::forward<Exp>(exp).error()));
1310
1.04M
    }
1311
1.04M
}
auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::impl::eof_error>, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::impl::eof_error>&&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Line
Count
Source
1293
379k
{
1294
379k
    if constexpr (std::is_void_v<Ret>) {
1295
379k
        using result = expected<expected_value_type<Exp>, monostate>;
1296
379k
        if (SCN_LIKELY(exp.has_value())) {
1297
379k
            return result(*std::forward<Exp>(exp));
1298
379k
        }
1299
1300
379k
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1301
379k
        return result(unexpect, monostate{});
1302
379k
    }
1303
379k
    else {
1304
379k
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1305
379k
        return SCN_LIKELY(exp.has_value())
1306
379k
                   ? result(*std::forward<Exp>(exp))
1307
379k
                   : result(unexpect,
1308
0
                            trivial_invoke(std::forward<F>(f),
1309
0
                                           std::forward<Exp>(exp).error()));
1310
379k
    }
1311
379k
}
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>&&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}, (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}&&)
auto scn::v3::detail::transform_error_impl<scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>&&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Line
Count
Source
1293
277k
{
1294
277k
    if constexpr (std::is_void_v<Ret>) {
1295
277k
        using result = expected<expected_value_type<Exp>, monostate>;
1296
277k
        if (SCN_LIKELY(exp.has_value())) {
1297
277k
            return result(*std::forward<Exp>(exp));
1298
277k
        }
1299
1300
277k
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1301
277k
        return result(unexpect, monostate{});
1302
277k
    }
1303
277k
    else {
1304
277k
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1305
277k
        return SCN_LIKELY(exp.has_value())
1306
277k
                   ? result(*std::forward<Exp>(exp))
1307
277k
                   : result(unexpect,
1308
0
                            trivial_invoke(std::forward<F>(f),
1309
0
                                           std::forward<Exp>(exp).error()));
1310
277k
    }
1311
277k
}
auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::parse_error>&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}, (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::parse_error>&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}&&)
Line
Count
Source
1293
506k
{
1294
506k
    if constexpr (std::is_void_v<Ret>) {
1295
506k
        using result = expected<expected_value_type<Exp>, monostate>;
1296
506k
        if (SCN_LIKELY(exp.has_value())) {
1297
506k
            return result(*std::forward<Exp>(exp));
1298
506k
        }
1299
1300
506k
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1301
506k
        return result(unexpect, monostate{});
1302
506k
    }
1303
506k
    else {
1304
506k
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1305
506k
        return SCN_LIKELY(exp.has_value())
1306
506k
                   ? result(*std::forward<Exp>(exp))
1307
506k
                   : result(unexpect,
1308
506k
                            trivial_invoke(std::forward<F>(f),
1309
506k
                                           std::forward<Exp>(exp).error()));
1310
506k
    }
1311
506k
}
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>&&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::parse_error>&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}, (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::parse_error>&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}&&)
auto scn::v3::detail::transform_error_impl<scn::v3::expected<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>&&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Line
Count
Source
1293
287k
{
1294
287k
    if constexpr (std::is_void_v<Ret>) {
1295
287k
        using result = expected<expected_value_type<Exp>, monostate>;
1296
287k
        if (SCN_LIKELY(exp.has_value())) {
1297
287k
            return result(*std::forward<Exp>(exp));
1298
287k
        }
1299
1300
287k
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1301
287k
        return result(unexpect, monostate{});
1302
287k
    }
1303
287k
    else {
1304
287k
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1305
287k
        return SCN_LIKELY(exp.has_value())
1306
287k
                   ? result(*std::forward<Exp>(exp))
1307
287k
                   : result(unexpect,
1308
0
                            trivial_invoke(std::forward<F>(f),
1309
0
                                           std::forward<Exp>(exp).error()));
1310
287k
    }
1311
287k
}
auto scn::v3::detail::transform_error_impl<scn::v3::expected<wchar_t const*, scn::v3::impl::parse_error>&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}, (void*)0, scn::v3::scan_error>(scn::v3::expected<wchar_t const*, scn::v3::impl::parse_error>&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}&&)
Line
Count
Source
1293
392k
{
1294
392k
    if constexpr (std::is_void_v<Ret>) {
1295
392k
        using result = expected<expected_value_type<Exp>, monostate>;
1296
392k
        if (SCN_LIKELY(exp.has_value())) {
1297
392k
            return result(*std::forward<Exp>(exp));
1298
392k
        }
1299
1300
392k
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1301
392k
        return result(unexpect, monostate{});
1302
392k
    }
1303
392k
    else {
1304
392k
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1305
392k
        return SCN_LIKELY(exp.has_value())
1306
392k
                   ? result(*std::forward<Exp>(exp))
1307
392k
                   : result(unexpect,
1308
392k
                            trivial_invoke(std::forward<F>(f),
1309
392k
                                           std::forward<Exp>(exp).error()));
1310
392k
    }
1311
392k
}
auto scn::v3::detail::transform_error_impl<scn::v3::expected<char const*, scn::v3::impl::eof_error>, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::impl::parse_error>(scn::v3::expected<char const*, scn::v3::impl::eof_error>&&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error))
Line
Count
Source
1293
2.03k
{
1294
2.03k
    if constexpr (std::is_void_v<Ret>) {
1295
2.03k
        using result = expected<expected_value_type<Exp>, monostate>;
1296
2.03k
        if (SCN_LIKELY(exp.has_value())) {
1297
2.03k
            return result(*std::forward<Exp>(exp));
1298
2.03k
        }
1299
1300
2.03k
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1301
2.03k
        return result(unexpect, monostate{});
1302
2.03k
    }
1303
2.03k
    else {
1304
2.03k
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1305
2.03k
        return SCN_LIKELY(exp.has_value())
1306
2.03k
                   ? result(*std::forward<Exp>(exp))
1307
2.03k
                   : result(unexpect,
1308
104
                            trivial_invoke(std::forward<F>(f),
1309
104
                                           std::forward<Exp>(exp).error()));
1310
2.03k
    }
1311
2.03k
}
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<char const*, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<char const*, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<char const*, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<char const*, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error> const&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::impl::parse_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error> const&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::impl::parse_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error> const&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}, (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error> const&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}&&)
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::eof_error> const&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::impl::parse_error>(scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::eof_error> const&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::eof_error>&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::impl::parse_error>(scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::eof_error>&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::parse_error> const&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}, (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::parse_error> const&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}&&)
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::eof_error> const&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::impl::parse_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::eof_error> const&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::eof_error>&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::impl::parse_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::eof_error>&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::parse_error> const&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}, (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::parse_error> const&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}&&)
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<char const*, scn::v3::impl::parse_error> const&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}, (void*)0, scn::v3::scan_error>(scn::v3::expected<char const*, scn::v3::impl::parse_error> const&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}&&)
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error> const&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::impl::parse_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error> const&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::impl::parse_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error> const&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}, (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error> const&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}&&)
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::eof_error> const&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::impl::parse_error>(scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::eof_error> const&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::eof_error>&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::impl::parse_error>(scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::eof_error>&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::parse_error> const&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}, (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::parse_error> const&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}&&)
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<wchar_t const*, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<wchar_t const*, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<wchar_t const*, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<wchar_t const*, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::eof_error> const&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::impl::parse_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::eof_error> const&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::eof_error>&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::impl::parse_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::eof_error>&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::parse_error> const&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}, (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::parse_error> const&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}&&)
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<wchar_t const*, scn::v3::impl::eof_error> const&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::impl::parse_error>(scn::v3::expected<wchar_t const*, scn::v3::impl::eof_error> const&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<wchar_t const*, scn::v3::impl::eof_error>&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::impl::parse_error>(scn::v3::expected<wchar_t const*, scn::v3::impl::eof_error>&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<wchar_t const*, scn::v3::impl::parse_error> const&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}, (void*)0, scn::v3::scan_error>(scn::v3::expected<wchar_t const*, scn::v3::impl::parse_error> const&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}&&)
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<char const*, scn::v3::impl::eof_error> const&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::impl::parse_error>(scn::v3::expected<char const*, scn::v3::impl::eof_error> const&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<char const*, scn::v3::impl::eof_error>&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::impl::parse_error>(scn::v3::expected<char const*, scn::v3::impl::eof_error>&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error))
1312
template <typename Exp,
1313
          typename F,
1314
          std::enable_if_t<is_exp_void<Exp>::value>* = nullptr,
1315
          typename Ret = decltype(trivial_invoke(SCN_DECLVAL(F),
1316
                                                 SCN_DECLVAL(Exp).error()))>
1317
constexpr auto transform_error_impl(Exp&& exp, F&& f)
1318
{
1319
    if constexpr (std::is_void_v<Ret>) {
1320
        using result = expected<expected_value_type<Exp>, monostate>;
1321
        if (SCN_LIKELY(exp.has_value())) {
1322
            return result();
1323
        }
1324
1325
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1326
        return result(unexpect, monostate{});
1327
    }
1328
    else {
1329
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1330
        return SCN_LIKELY(exp.has_value())
1331
                   ? result()
1332
                   : result(unexpect,
1333
                            trivial_invoke(std::forward<F>(f),
1334
                                           std::forward<Exp>(exp).error()));
1335
    }
1336
}
1337
1338
template <class T, class E, class U, class G, class UR, class GR>
1339
using enable_from_other =
1340
    std::enable_if_t<std::is_constructible_v<T, UR> &&
1341
                     std::is_constructible_v<E, GR> &&
1342
                     !std::is_constructible_v<T, expected<U, G>&> &&
1343
                     !std::is_constructible_v<T, expected<U, G>&&> &&
1344
                     !std::is_constructible_v<T, const expected<U, G>&> &&
1345
                     !std::is_constructible_v<T, const expected<U, G>&&> &&
1346
                     !std::is_convertible_v<expected<U, G>&, T> &&
1347
                     !std::is_convertible_v<expected<U, G>&&, T> &&
1348
                     !std::is_convertible_v<const expected<U, G>&, T> &&
1349
                     !std::is_convertible_v<const expected<U, G>&&, T>>;
1350
}  // namespace detail
1351
1352
template <typename T, typename E>
1353
class SCN_TRIVIAL_ABI expected
1354
    : private detail::expected_operations_base<T, E>,
1355
      private detail::expected_delete_ctor_base<T, E>,
1356
      private detail::expected_delete_assign_base<T, E>,
1357
      private detail::expected_default_ctor_base<T, E> {
1358
    using base = detail::expected_operations_base<T, E>;
1359
    using ctor_base = detail::expected_default_ctor_base<T, E>;
1360
1361
    static_assert(std::is_void_v<T> || std::is_destructible_v<T>,
1362
                  "T must be void or Destructible");
1363
    static_assert(std::is_destructible_v<E>, "E must be Destructible");
1364
1365
    static_assert(!std::is_same_v<std::remove_cv_t<T>, std::in_place_t>);
1366
    static_assert(!std::is_same_v<std::remove_cv_t<T>, unexpect_t>);
1367
    static_assert(!std::is_same_v<std::remove_cv_t<T>, unexpected<E>>);
1368
1369
public:
1370
    using value_type = T;
1371
    using error_type = E;
1372
    using unexpected_type = unexpected<E>;
1373
1374
    template <typename U>
1375
    using rebind = expected<U, error_type>;
1376
1377
    // Special member functions are defaulted, implementations provided
1378
    // by base classes
1379
1380
    constexpr expected() = default;
1381
1382
    constexpr expected(const expected&) = default;
1383
    constexpr expected(expected&&) = default;
1384
    constexpr expected& operator=(const expected&) = default;
1385
    constexpr expected& operator=(expected&&) = default;
1386
1387
    ~expected() = default;
1388
1389
    /**
1390
     * Construct an expected value.
1391
     * Intentionally non-explicit, to make constructing an expected
1392
     * value as transparent as possible.
1393
     */
1394
    template <typename U = value_type,
1395
              typename = std::enable_if_t<std::is_convertible_v<U, value_type>>>
1396
    SCN_IMPLICIT constexpr expected(U&& val) noexcept(
1397
        std::is_nothrow_constructible_v<base, std::in_place_t, U&&>)
1398
        : base(std::in_place, std::forward<U>(val)),
1399
          ctor_base(detail::non_default_ctor_tag_t{})
1400
604M
    {
1401
604M
    }
scn::v3::expected<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, scn::v3::scan_error>::expected<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, void>(scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>&&)
Line
Count
Source
1400
4.56M
    {
1401
4.56M
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, char>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, char>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, char>&&)
Line
Count
Source
1400
146
    {
1401
146
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, int>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, int>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, int>&&)
Line
Count
Source
1400
382k
    {
1401
382k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>&&)
Line
Count
Source
1400
324k
    {
1401
324k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, double>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, double>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, double>&&)
Line
Count
Source
1400
768k
    {
1401
768k
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, bool>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, bool>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, bool>&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, void*>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, void*>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, void*>&&)
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
1400
151k
    {
1401
151k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&&)
Line
Count
Source
1400
842
    {
1401
842
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >&&)
Line
Count
Source
1400
151k
    {
1401
151k
    }
scn::v3::expected<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, scn::v3::scan_error>::expected<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void>(scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>&&)
Line
Count
Source
1400
39.2M
    {
1401
39.2M
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t>&&)
Line
Count
Source
1400
60
    {
1401
60
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>&&)
Line
Count
Source
1400
711
    {
1401
711
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>&&)
Line
Count
Source
1400
564
    {
1401
564
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>&&)
Line
Count
Source
1400
15.6k
    {
1401
15.6k
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, bool>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, bool>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, bool>&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void*>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void*>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void*>&&)
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
1400
60
    {
1401
60
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&&)
Line
Count
Source
1400
19.6M
    {
1401
19.6M
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >&&)
Line
Count
Source
1400
19.6M
    {
1401
19.6M
    }
scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::scan_error>::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, void>(scn::v3::detail::basic_scan_buffer<char>::forward_iterator&&)
Line
Count
Source
1400
15.1M
    {
1401
15.1M
    }
scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::scan_error>::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, void>(scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator&&)
Line
Count
Source
1400
39.9M
    {
1401
39.9M
    }
scn::v3::expected<char const*, scn::v3::scan_error>::expected<char const*, void>(char const*&&)
Line
Count
Source
1400
22.0M
    {
1401
22.0M
    }
scn::v3::expected<wchar_t const*, scn::v3::scan_error>::expected<wchar_t const*, void>(wchar_t const*&&)
Line
Count
Source
1400
79.9M
    {
1401
79.9M
    }
scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::eof_error>::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, void>(scn::v3::detail::basic_scan_buffer<char>::forward_iterator&&)
Line
Count
Source
1400
22.2M
    {
1401
22.2M
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, void>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error>::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, void>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>&&)
scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, long>, scn::v3::scan_error>::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, long>, void>(std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, long>&&)
Line
Count
Source
1400
6.62M
    {
1401
6.62M
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>&, void>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>&)
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, void>(std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, void>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error>::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, void>(scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::scan_error>::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, void>(scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >&&)
Unexecuted instantiation: scn::v3::expected<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::expected<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::parse_error>::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator&, void>(scn::v3::detail::basic_scan_buffer<char>::forward_iterator&)
Line
Count
Source
1400
2.09M
    {
1401
2.09M
    }
scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, void>(std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>&&)
Line
Count
Source
1400
4.74M
    {
1401
4.74M
    }
scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::parse_error>::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, void>(scn::v3::detail::basic_scan_buffer<char>::forward_iterator&&)
Line
Count
Source
1400
12.5M
    {
1401
12.5M
    }
scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::impl::eof_error>::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, void>(scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>&&)
Line
Count
Source
1400
2.16M
    {
1401
2.16M
    }
scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::scan_error>::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, void>(scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>&&)
Line
Count
Source
1400
2.16M
    {
1401
2.16M
    }
scn::v3::expected<std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::expected<std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
1400
311k
    {
1401
311k
    }
scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::scan_error>::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator&, void>(scn::v3::detail::basic_scan_buffer<char>::forward_iterator&)
Line
Count
Source
1400
3.36M
    {
1401
3.36M
    }
scn::v3::expected<char const*, scn::v3::impl::eof_error>::expected<char const*, void>(char const*&&)
Line
Count
Source
1400
11.0M
    {
1401
11.0M
    }
scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::eof_error>::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, void>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&&)
Line
Count
Source
1400
8.06k
    {
1401
8.06k
    }
scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::scan_error>::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, void>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&&)
Line
Count
Source
1400
5.05k
    {
1401
5.05k
    }
scn::v3::expected<std::__1::pair<char const*, long>, scn::v3::scan_error>::expected<std::__1::pair<char const*, long>, void>(std::__1::pair<char const*, long>&&)
Line
Count
Source
1400
6.67M
    {
1401
6.67M
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::parse_error>::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&, void>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&)
scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, void>(std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>&&)
Line
Count
Source
1400
1.51k
    {
1401
1.51k
    }
scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::parse_error>::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, void>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&&)
Line
Count
Source
1400
2.09k
    {
1401
2.09k
    }
scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::impl::eof_error>::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, void>(scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >&&)
Line
Count
Source
1400
1.14k
    {
1401
1.14k
    }
scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::scan_error>::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, void>(scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >&&)
Line
Count
Source
1400
1.14k
    {
1401
1.14k
    }
Unexecuted instantiation: scn::v3::expected<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::expected<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
scn::v3::expected<char const*, scn::v3::impl::parse_error>::expected<char const*&, void>(char const*&)
Line
Count
Source
1400
1.64M
    {
1401
1.64M
    }
scn::v3::expected<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::expected<std::__1::pair<char const*, scn::v3::impl::sign_type>, void>(std::__1::pair<char const*, scn::v3::impl::sign_type>&&)
Line
Count
Source
1400
4.58M
    {
1401
4.58M
    }
scn::v3::expected<char const*, scn::v3::impl::parse_error>::expected<char const*, void>(char const*&&)
Line
Count
Source
1400
1.01M
    {
1401
1.01M
    }
scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::impl::eof_error>::expected<scn::v3::impl::parse_integer_prefix_result<char const*>, void>(scn::v3::impl::parse_integer_prefix_result<char const*>&&)
Line
Count
Source
1400
2.16M
    {
1401
2.16M
    }
scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::scan_error>::expected<scn::v3::impl::parse_integer_prefix_result<char const*>, void>(scn::v3::impl::parse_integer_prefix_result<char const*>&&)
Line
Count
Source
1400
2.16M
    {
1401
2.16M
    }
scn::v3::expected<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::expected<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
1400
309k
    {
1401
309k
    }
scn::v3::expected<char const*, scn::v3::scan_error>::expected<char const*&, void>(char const*&)
Line
Count
Source
1400
3.38M
    {
1401
3.38M
    }
scn::v3::expected<long, scn::v3::scan_error>::expected<long, void>(long&&)
Line
Count
Source
1400
76.8M
    {
1401
76.8M
    }
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::scan_error>::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, void>(std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error>::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>&, void>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>&)
scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::scan_error>::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, void>(std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>&&)
Line
Count
Source
1400
2.33M
    {
1401
2.33M
    }
scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::scan_error>::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, void>(std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>&&)
Line
Count
Source
1400
364
    {
1401
364
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::scan_error>::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&, void>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&)
scn::v3::expected<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::scan_error>::expected<std::__1::pair<char const*, scn::v3::impl::sign_type>, void>(std::__1::pair<char const*, scn::v3::impl::sign_type>&&)
Line
Count
Source
1400
2.34M
    {
1401
2.34M
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error>::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> const&, void>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> const&)
scn::v3::expected<std::__1::regex_constants::syntax_option_type, scn::v3::scan_error>::expected<std::__1::regex_constants::syntax_option_type, void>(std::__1::regex_constants::syntax_option_type&&)
Line
Count
Source
1400
10.3k
    {
1401
10.3k
    }
scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::scan_error>::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator const&, void>(scn::v3::detail::basic_scan_buffer<char>::forward_iterator const&)
Line
Count
Source
1400
826
    {
1401
826
    }
scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::scan_error>::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> const&, void>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> const&)
Line
Count
Source
1400
762
    {
1401
762
    }
scn::v3::expected<char const*, scn::v3::scan_error>::expected<char const* const&, void>(char const* const&)
Line
Count
Source
1400
4.07k
    {
1401
4.07k
    }
scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::eof_error>::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, void>(scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator&&)
Line
Count
Source
1400
21.9M
    {
1401
21.9M
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, void>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error>::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, void>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>&&)
scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>, scn::v3::scan_error>::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>, void>(std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>&&)
Line
Count
Source
1400
16.2M
    {
1401
16.2M
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>&, void>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>&)
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, void>(std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, void>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error>::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, void>(scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::scan_error>::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, void>(scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >&&)
Unexecuted instantiation: scn::v3::expected<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::expected<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::parse_error>::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator&, void>(scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator&)
Line
Count
Source
1400
5.62k
    {
1401
5.62k
    }
scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, void>(std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>&&)
Line
Count
Source
1400
631k
    {
1401
631k
    }
scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::parse_error>::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, void>(scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator&&)
Line
Count
Source
1400
968k
    {
1401
968k
    }
scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::impl::eof_error>::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, void>(scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>&&)
Line
Count
Source
1400
351k
    {
1401
351k
    }
scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::scan_error>::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, void>(scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>&&)
Line
Count
Source
1400
351k
    {
1401
351k
    }
scn::v3::expected<std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::expected<std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
1400
724
    {
1401
724
    }
scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::scan_error>::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator&, void>(scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator&)
Line
Count
Source
1400
7.87M
    {
1401
7.87M
    }
scn::v3::expected<wchar_t const*, scn::v3::impl::eof_error>::expected<wchar_t const*, void>(wchar_t const*&&)
Line
Count
Source
1400
41.7M
    {
1401
41.7M
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::eof_error>::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, void>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::scan_error>::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, void>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&&)
scn::v3::expected<std::__1::pair<wchar_t const*, long>, scn::v3::scan_error>::expected<std::__1::pair<wchar_t const*, long>, void>(std::__1::pair<wchar_t const*, long>&&)
Line
Count
Source
1400
31.9M
    {
1401
31.9M
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::parse_error>::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&, void>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&)
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, void>(std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::parse_error>::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, void>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::impl::eof_error>::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, void>(scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::scan_error>::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, void>(scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >&&)
Unexecuted instantiation: scn::v3::expected<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::expected<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
scn::v3::expected<wchar_t const*, scn::v3::impl::parse_error>::expected<wchar_t const*&, void>(wchar_t const*&)
Line
Count
Source
1400
4.17k
    {
1401
4.17k
    }
scn::v3::expected<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::expected<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, void>(std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>&&)
Line
Count
Source
1400
668k
    {
1401
668k
    }
scn::v3::expected<wchar_t const*, scn::v3::impl::parse_error>::expected<wchar_t const*, void>(wchar_t const*&&)
Line
Count
Source
1400
990k
    {
1401
990k
    }
scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::impl::eof_error>::expected<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, void>(scn::v3::impl::parse_integer_prefix_result<wchar_t const*>&&)
Line
Count
Source
1400
379k
    {
1401
379k
    }
scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::scan_error>::expected<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, void>(scn::v3::impl::parse_integer_prefix_result<wchar_t const*>&&)
Line
Count
Source
1400
379k
    {
1401
379k
    }
scn::v3::expected<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::expected<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
1400
724
    {
1401
724
    }
scn::v3::expected<wchar_t const*, scn::v3::scan_error>::expected<wchar_t const*&, void>(wchar_t const*&)
Line
Count
Source
1400
15.7M
    {
1401
15.7M
    }
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::scan_error>::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, void>(std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error>::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>&, void>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>&)
scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::scan_error>::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, void>(std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>&&)
Line
Count
Source
1400
277k
    {
1401
277k
    }
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::scan_error>::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, void>(std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::scan_error>::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&, void>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&)
scn::v3::expected<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::scan_error>::expected<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, void>(std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>&&)
Line
Count
Source
1400
287k
    {
1401
287k
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error>::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> const&, void>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> const&)
scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::scan_error>::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator const&, void>(scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator const&)
Line
Count
Source
1400
34
    {
1401
34
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::scan_error>::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> const&, void>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> const&)
scn::v3::expected<wchar_t const*, scn::v3::scan_error>::expected<wchar_t const* const&, void>(wchar_t const* const&)
Line
Count
Source
1400
68
    {
1401
68
    }
scn::v3::expected<long, scn::v3::scan_error>::expected<int, void>(int&&)
Line
Count
Source
1400
257k
    {
1401
257k
    }
Unexecuted instantiation: scn::v3::expected<wchar_t, scn::v3::scan_error>::expected<wchar_t, void>(wchar_t&&)
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, signed char>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, signed char>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, signed char>&&)
Line
Count
Source
1400
296k
    {
1401
296k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned char>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned char>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned char>&&)
Line
Count
Source
1400
283k
    {
1401
283k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long long>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long long>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long long>&&)
Line
Count
Source
1400
390k
    {
1401
390k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned long long>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned long long>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned long long>&&)
Line
Count
Source
1400
328k
    {
1401
328k
    }
scn::v3::expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, scn::v3::scan_error>::expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, void>(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >&&)
Line
Count
Source
1400
4.41M
    {
1401
4.41M
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, signed char>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, signed char>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, signed char>&&)
Line
Count
Source
1400
298k
    {
1401
298k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned char>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned char>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned char>&&)
Line
Count
Source
1400
285k
    {
1401
285k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, int>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, int>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, int>&&)
Line
Count
Source
1400
383k
    {
1401
383k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned int>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned int>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned int>&&)
Line
Count
Source
1400
326k
    {
1401
326k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long long>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long long>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long long>&&)
Line
Count
Source
1400
390k
    {
1401
390k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned long long>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned long long>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned long long>&&)
Line
Count
Source
1400
330k
    {
1401
330k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, signed char>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, signed char>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, signed char>&&)
Line
Count
Source
1400
595
    {
1401
595
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned char>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned char>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned char>&&)
Line
Count
Source
1400
500
    {
1401
500
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long long>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long long>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long long>&&)
Line
Count
Source
1400
864
    {
1401
864
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned long long>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned long long>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned long long>&&)
Line
Count
Source
1400
694
    {
1401
694
    }
scn::v3::expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, scn::v3::scan_error>::expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, void>(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >&&)
Line
Count
Source
1400
19.6M
    {
1401
19.6M
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, signed char>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, signed char>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, signed char>&&)
Line
Count
Source
1400
595
    {
1401
595
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned char>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned char>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned char>&&)
Line
Count
Source
1400
500
    {
1401
500
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, int>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, int>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, int>&&)
Line
Count
Source
1400
711
    {
1401
711
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned int>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned int>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned int>&&)
Line
Count
Source
1400
564
    {
1401
564
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long long>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long long>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long long>&&)
Line
Count
Source
1400
864
    {
1401
864
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned long long>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned long long>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned long long>&&)
Line
Count
Source
1400
694
    {
1401
694
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
1400
152k
    {
1401
152k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&&)
Line
Count
Source
1400
19.6M
    {
1401
19.6M
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, float>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, float>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, float>&&)
Line
Count
Source
1400
707k
    {
1401
707k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long double>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long double>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long double>&&)
Line
Count
Source
1400
779k
    {
1401
779k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, float>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, float>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, float>&&)
Line
Count
Source
1400
706k
    {
1401
706k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, double>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, double>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, double>&&)
Line
Count
Source
1400
766k
    {
1401
766k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long double>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long double>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long double>&&)
Line
Count
Source
1400
776k
    {
1401
776k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, float>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, float>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, float>&&)
Line
Count
Source
1400
15.5k
    {
1401
15.5k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long double>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long double>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long double>&&)
Line
Count
Source
1400
15.8k
    {
1401
15.8k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, float>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, float>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, float>&&)
Line
Count
Source
1400
15.5k
    {
1401
15.5k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, double>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, double>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, double>&&)
Line
Count
Source
1400
15.6k
    {
1401
15.6k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long double>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long double>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long double>&&)
Line
Count
Source
1400
15.8k
    {
1401
15.8k
    }
1402
1403
    /// Construct an expected value directly in-place
1404
    template <typename... Args,
1405
              typename = std::enable_if_t<std::is_constructible_v<T, Args...>>>
1406
    explicit constexpr expected(std::in_place_t, Args&&... args) noexcept(
1407
        std::is_nothrow_constructible_v<base, std::in_place_t, Args&&...>)
1408
        : base(std::in_place, std::forward<Args>(args)...),
1409
          ctor_base(detail::non_default_ctor_tag_t{})
1410
    {
1411
    }
1412
1413
    template <typename G = E,
1414
              std::enable_if_t<std::is_constructible_v<E, const G&>>* = nullptr,
1415
              std::enable_if_t<!std::is_convertible_v<const G&, E>>* = nullptr>
1416
    explicit constexpr expected(const unexpected<G>& e) noexcept(
1417
        std::is_nothrow_constructible_v<base, unexpect_t, const G&>)
1418
        : base(unexpect, e.error()), ctor_base(detail::non_default_ctor_tag_t{})
1419
    {
1420
    }
1421
    template <typename G = E,
1422
              std::enable_if_t<std::is_constructible_v<E, const G&>>* = nullptr,
1423
              std::enable_if_t<std::is_convertible_v<const G&, E>>* = nullptr>
1424
    SCN_IMPLICIT constexpr expected(const unexpected<G>& e) noexcept(
1425
        std::is_nothrow_constructible_v<base, unexpect_t, const G&>)
1426
        : base(unexpect, e.error()), ctor_base(detail::non_default_ctor_tag_t{})
1427
    {
1428
    }
1429
1430
    template <typename G = E,
1431
              std::enable_if_t<std::is_constructible_v<E, G&&>>* = nullptr,
1432
              std::enable_if_t<!std::is_convertible_v<G&&, E>>* = nullptr>
1433
    explicit constexpr expected(unexpected<G>&& e) noexcept(
1434
        std::is_nothrow_constructible_v<base, unexpect_t, G&&>)
1435
        : base(unexpect, std::move(e.error())),
1436
          ctor_base(detail::non_default_ctor_tag_t{})
1437
    {
1438
    }
1439
    template <typename G = E,
1440
              std::enable_if_t<std::is_constructible_v<E, G&&>>* = nullptr,
1441
              std::enable_if_t<std::is_convertible_v<G&&, E>>* = nullptr>
1442
    SCN_IMPLICIT constexpr expected(unexpected<G>&& e) noexcept(
1443
        std::is_nothrow_constructible_v<base, unexpect_t, G&&>)
1444
        : base(unexpect, std::move(e.error())),
1445
          ctor_base(detail::non_default_ctor_tag_t{})
1446
54.1M
    {
1447
54.1M
    }
scn::v3::expected<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
454k
    {
1447
454k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, char>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
8.22k
    {
1447
8.22k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, int>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
49.2k
    {
1447
49.2k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
49.2k
    {
1447
49.2k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, double>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
47.1k
    {
1447
47.1k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, bool>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
8.37k
    {
1447
8.37k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, void*>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
8.37k
    {
1447
8.37k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
17.5k
    {
1447
17.5k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
7.53k
    {
1447
7.53k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
17.5k
    {
1447
17.5k
    }
scn::v3::expected<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
913k
    {
1447
913k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
16.6k
    {
1447
16.6k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
98.4k
    {
1447
98.4k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
98.4k
    {
1447
98.4k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
94.3k
    {
1447
94.3k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, bool>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
16.7k
    {
1447
16.7k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void*>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
16.7k
    {
1447
16.7k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
16.6k
    {
1447
16.6k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
36.6k
    {
1447
36.6k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
36.6k
    {
1447
36.6k
    }
scn::v3::expected<char const*, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
849k
    {
1447
849k
    }
scn::v3::expected<wchar_t const*, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
1.59M
    {
1447
1.59M
    }
scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
587k
    {
1447
587k
    }
scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::eof_error>::expected<scn::v3::impl::eof_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::eof_error>&&)
Line
Count
Source
1446
156k
    {
1447
156k
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>::expected<scn::v3::impl::eof_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::eof_error>&&)
scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, long>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
41.8k
    {
1447
41.8k
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>::expected<scn::v3::impl::parse_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::parse_error>&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>::expected<scn::v3::impl::parse_error::code, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::parse_error::code>&&)
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::expected<scn::v3::impl::eof_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::eof_error>&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error>::expected<scn::v3::impl::eof_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::eof_error>&&)
Unexecuted instantiation: scn::v3::expected<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::parse_error>::expected<scn::v3::impl::parse_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::parse_error>&&)
Line
Count
Source
1446
2.40M
    {
1447
2.40M
    }
scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::parse_error>::expected<scn::v3::impl::parse_error::code, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::parse_error::code>&&)
Line
Count
Source
1446
17.8M
    {
1447
17.8M
    }
scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::expected<scn::v3::impl::eof_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::eof_error>&&)
Line
Count
Source
1446
491
    {
1447
491
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::impl::eof_error>::expected<scn::v3::impl::eof_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::eof_error>&&)
scn::v3::expected<std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
8.86k
    {
1447
8.86k
    }
scn::v3::expected<char const*, scn::v3::impl::eof_error>::expected<scn::v3::impl::eof_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::eof_error>&&)
Line
Count
Source
1446
61.2k
    {
1447
61.2k
    }
scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::eof_error>::expected<scn::v3::impl::eof_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::eof_error>&&)
Line
Count
Source
1446
376
    {
1447
376
    }
scn::v3::expected<std::__1::pair<char const*, long>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
38.3k
    {
1447
38.3k
    }
scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
4.97k
    {
1447
4.97k
    }
scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::parse_error>::expected<scn::v3::impl::parse_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::parse_error>&&)
Line
Count
Source
1446
578
    {
1447
578
    }
scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::parse_error>::expected<scn::v3::impl::parse_error::code, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::parse_error::code>&&)
Line
Count
Source
1446
5.93k
    {
1447
5.93k
    }
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::expected<scn::v3::impl::eof_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::eof_error>&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::impl::eof_error>::expected<scn::v3::impl::eof_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::eof_error>&&)
scn::v3::expected<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
16
    {
1447
16
    }
scn::v3::expected<char const*, scn::v3::impl::parse_error>::expected<scn::v3::impl::parse_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::parse_error>&&)
Line
Count
Source
1446
2.39M
    {
1447
2.39M
    }
scn::v3::expected<char const*, scn::v3::impl::parse_error>::expected<scn::v3::impl::parse_error::code, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::parse_error::code>&&)
Line
Count
Source
1446
13.6M
    {
1447
13.6M
    }
scn::v3::expected<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::expected<scn::v3::impl::eof_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::eof_error>&&)
Line
Count
Source
1446
156
    {
1447
156
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::impl::eof_error>::expected<scn::v3::impl::eof_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::eof_error>&&)
scn::v3::expected<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
9.25k
    {
1447
9.25k
    }
scn::v3::expected<long, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
2.86M
    {
1447
2.86M
    }
Unexecuted instantiation: scn::v3::expected<std::__1::regex_constants::syntax_option_type, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
1.29M
    {
1447
1.29M
    }
scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::eof_error>::expected<scn::v3::impl::eof_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::eof_error>&&)
Line
Count
Source
1446
85.4k
    {
1447
85.4k
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>::expected<scn::v3::impl::eof_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::eof_error>&&)
scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
5.18k
    {
1447
5.18k
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>::expected<scn::v3::impl::parse_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::parse_error>&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>::expected<scn::v3::impl::parse_error::code, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::parse_error::code>&&)
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::expected<scn::v3::impl::eof_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::eof_error>&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error>::expected<scn::v3::impl::eof_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::eof_error>&&)
Unexecuted instantiation: scn::v3::expected<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::parse_error>::expected<scn::v3::impl::parse_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::parse_error>&&)
Line
Count
Source
1446
354k
    {
1447
354k
    }
scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::parse_error>::expected<scn::v3::impl::parse_error::code, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::parse_error::code>&&)
Line
Count
Source
1446
2.39M
    {
1447
2.39M
    }
scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::expected<scn::v3::impl::eof_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::eof_error>&&)
Line
Count
Source
1446
27
    {
1447
27
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::impl::eof_error>::expected<scn::v3::impl::eof_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::eof_error>&&)
scn::v3::expected<std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
46.0k
    {
1447
46.0k
    }
scn::v3::expected<wchar_t const*, scn::v3::impl::eof_error>::expected<scn::v3::impl::eof_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::eof_error>&&)
Line
Count
Source
1446
89.4k
    {
1447
89.4k
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::eof_error>::expected<scn::v3::impl::eof_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::eof_error>&&)
scn::v3::expected<std::__1::pair<wchar_t const*, long>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
6.88k
    {
1447
6.88k
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::parse_error>::expected<scn::v3::impl::parse_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::parse_error>&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::parse_error>::expected<scn::v3::impl::parse_error::code, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::parse_error::code>&&)
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::expected<scn::v3::impl::eof_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::eof_error>&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::impl::eof_error>::expected<scn::v3::impl::eof_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::eof_error>&&)
Unexecuted instantiation: scn::v3::expected<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
scn::v3::expected<wchar_t const*, scn::v3::impl::parse_error>::expected<scn::v3::impl::parse_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::parse_error>&&)
Line
Count
Source
1446
363k
    {
1447
363k
    }
scn::v3::expected<wchar_t const*, scn::v3::impl::parse_error>::expected<scn::v3::impl::parse_error::code, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::parse_error::code>&&)
Line
Count
Source
1446
1.99M
    {
1447
1.99M
    }
scn::v3::expected<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::expected<scn::v3::impl::eof_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::eof_error>&&)
Line
Count
Source
1446
12
    {
1447
12
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::impl::eof_error>::expected<scn::v3::impl::eof_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::eof_error>&&)
scn::v3::expected<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
46.0k
    {
1447
46.0k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, signed char>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
40.8k
    {
1447
40.8k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned char>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
40.8k
    {
1447
40.8k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long long>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
40.8k
    {
1447
40.8k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned long long>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
40.8k
    {
1447
40.8k
    }
scn::v3::expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
371k
    {
1447
371k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, signed char>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
40.8k
    {
1447
40.8k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned char>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
40.8k
    {
1447
40.8k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, int>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
40.8k
    {
1447
40.8k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned int>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
40.8k
    {
1447
40.8k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long long>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
40.8k
    {
1447
40.8k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned long long>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
40.8k
    {
1447
40.8k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, signed char>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
81.7k
    {
1447
81.7k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned char>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
81.7k
    {
1447
81.7k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long long>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
81.7k
    {
1447
81.7k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned long long>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
81.7k
    {
1447
81.7k
    }
scn::v3::expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
743k
    {
1447
743k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, signed char>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
81.7k
    {
1447
81.7k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned char>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
81.7k
    {
1447
81.7k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, int>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
81.7k
    {
1447
81.7k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned int>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
81.7k
    {
1447
81.7k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long long>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
81.7k
    {
1447
81.7k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned long long>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
81.7k
    {
1447
81.7k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
9.99k
    {
1447
9.99k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
19.9k
    {
1447
19.9k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, float>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
38.8k
    {
1447
38.8k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long double>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
38.8k
    {
1447
38.8k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, float>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
38.8k
    {
1447
38.8k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, double>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
38.8k
    {
1447
38.8k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long double>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
38.8k
    {
1447
38.8k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, float>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
77.6k
    {
1447
77.6k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long double>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
77.6k
    {
1447
77.6k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, float>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
77.6k
    {
1447
77.6k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, double>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
77.6k
    {
1447
77.6k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long double>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
77.6k
    {
1447
77.6k
    }
1448
1449
    /// Construct an unexpected value directly in-place
1450
    template <typename... Args,
1451
              typename = std::enable_if_t<std::is_constructible_v<E, Args...>>>
1452
    explicit constexpr expected(unexpect_t, Args&&... args) noexcept(
1453
        std::is_nothrow_constructible_v<base, unexpect_t, Args&&...>)
1454
        : base(unexpect, std::forward<Args>(args)...),
1455
          ctor_base(detail::non_default_ctor_tag_t{})
1456
6.14M
    {
1457
6.14M
    }
scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::scan_error>::expected<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
1456
2.40M
    {
1457
2.40M
    }
scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::scan_error>::expected<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
1456
815k
    {
1457
815k
    }
scn::v3::expected<char const*, scn::v3::scan_error>::expected<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
1456
2.29M
    {
1457
2.29M
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error>::expected<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>::expected<scn::v3::impl::parse_error, void>(scn::v3::unexpect_t, scn::v3::impl::parse_error&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::scan_error>::expected<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::parse_error>::expected<scn::v3::impl::parse_error, void>(scn::v3::unexpect_t, scn::v3::impl::parse_error&&)
Line
Count
Source
1456
72.0k
    {
1457
72.0k
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::scan_error>::expected<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::scan_error>::expected<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
1456
1.95k
    {
1457
1.95k
    }
scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::parse_error>::expected<scn::v3::impl::parse_error, void>(scn::v3::unexpect_t, scn::v3::impl::parse_error&&)
Line
Count
Source
1456
214
    {
1457
214
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::scan_error>::expected<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::scan_error>::expected<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::scan_error>::expected<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::scan_error>::expected<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::scan_error>::expected<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Unexecuted instantiation: scn::v3::expected<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::scan_error>::expected<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error>::expected<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>::expected<scn::v3::impl::parse_error, void>(scn::v3::unexpect_t, scn::v3::impl::parse_error&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::scan_error>::expected<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::parse_error>::expected<scn::v3::impl::parse_error, void>(scn::v3::unexpect_t, scn::v3::impl::parse_error&&)
Line
Count
Source
1456
75.8k
    {
1457
75.8k
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::scan_error>::expected<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::scan_error>::expected<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
scn::v3::expected<wchar_t const*, scn::v3::scan_error>::expected<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
1456
405k
    {
1457
405k
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::parse_error>::expected<scn::v3::impl::parse_error, void>(scn::v3::unexpect_t, scn::v3::impl::parse_error&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::scan_error>::expected<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
scn::v3::expected<wchar_t const*, scn::v3::impl::parse_error>::expected<scn::v3::impl::parse_error, void>(scn::v3::unexpect_t, scn::v3::impl::parse_error&&)
Line
Count
Source
1456
76.0k
    {
1457
76.0k
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::scan_error>::expected<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::scan_error>::expected<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::scan_error>::expected<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::scan_error>::expected<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Unexecuted instantiation: scn::v3::expected<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::scan_error>::expected<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
scn::v3::expected<char const*, scn::v3::impl::parse_error>::expected<scn::v3::impl::parse_error, void>(scn::v3::unexpect_t, scn::v3::impl::parse_error&&)
Line
Count
Source
1456
104
    {
1457
104
    }
1458
1459
    template <
1460
        typename U,
1461
        typename G,
1462
        std::enable_if_t<!(std::is_convertible_v<const U&, T> &&
1463
                           std::is_convertible_v<const G&, E>)>* = nullptr,
1464
        detail::enable_from_other<T, E, U, G, const U&, const G&>* = nullptr>
1465
    explicit constexpr expected(const expected<U, G>& other) noexcept(
1466
        std::is_nothrow_constructible_v<T, const U&> &&
1467
        std::is_nothrow_constructible_v<E, const G&>)
1468
        : base(), ctor_base(detail::non_default_ctor_tag_t{})
1469
    {
1470
        if (other.has_value()) {
1471
            this->construct(*other);
1472
        }
1473
        else {
1474
            this->construct_unexpected(other.error());
1475
        }
1476
    }
1477
    template <
1478
        typename U,
1479
        typename G,
1480
        std::enable_if_t<(std::is_convertible_v<const U&, T> &&
1481
                          std::is_convertible_v<const G&, E>)>* = nullptr,
1482
        detail::enable_from_other<T, E, U, G, const U&, const G&>* = nullptr>
1483
    constexpr expected(const expected<U, G>& other) noexcept(
1484
        std::is_nothrow_constructible_v<T, const U&> &&
1485
        std::is_nothrow_constructible_v<E, const G&>)
1486
        : base(), ctor_base(detail::non_default_ctor_tag_t{})
1487
    {
1488
        if (other.has_value()) {
1489
            this->construct(*other);
1490
        }
1491
        else {
1492
            this->construct_unexpected(other.error());
1493
        }
1494
    }
1495
1496
    template <typename U,
1497
              typename G,
1498
              std::enable_if_t<!(std::is_convertible_v<U&&, T> &&
1499
                                 std::is_convertible_v<G&&, E>)>* = nullptr,
1500
              detail::enable_from_other<T, E, U, G, U&&, G&&>* = nullptr>
1501
    explicit constexpr expected(expected<U, G>&& other) noexcept(
1502
        std::is_nothrow_constructible_v<T, U&&> &&
1503
        std::is_nothrow_constructible_v<E, G&&>)
1504
        : base(), ctor_base(detail::non_default_ctor_tag_t{})
1505
    {
1506
        if (other.has_value()) {
1507
            this->construct(std::move(*other));
1508
        }
1509
        else {
1510
            this->construct_unexpected(std::move(other.error()));
1511
        }
1512
    }
1513
    template <typename U,
1514
              typename G,
1515
              std::enable_if_t<(std::is_convertible_v<U&&, T> &&
1516
                                std::is_convertible_v<G&&, E>)>* = nullptr,
1517
              detail::enable_from_other<T, E, U, G, U&&, G&&>* = nullptr>
1518
    constexpr expected(expected<U, G>&& other) noexcept(
1519
        std::is_nothrow_constructible_v<T, U&&> &&
1520
        std::is_nothrow_constructible_v<E, G&&>)
1521
        : base(), ctor_base(detail::non_default_ctor_tag_t{})
1522
    {
1523
        if (other.has_value()) {
1524
            this->construct(std::move(*other));
1525
        }
1526
        else {
1527
            this->construct_unexpected(std::move(other.error()));
1528
        }
1529
    }
1530
1531
    template <typename U = value_type,
1532
              typename = std::enable_if_t<std::is_convertible_v<U, value_type>>>
1533
    expected& operator=(U&& val) noexcept(
1534
        noexcept(assign_value(std::forward<U>(val))))
1535
    {
1536
        assign_value(std::forward<U>(val));
1537
        return *this;
1538
    }
1539
1540
    expected& operator=(const unexpected_type& unex) noexcept(
1541
        noexcept(assign_unexpected(unex)))
1542
    {
1543
        assign_unexpected(unex);
1544
        return *this;
1545
    }
1546
    expected& operator=(unexpected_type&& unex) noexcept(
1547
        noexcept(assign_unexpected(std::move(unex))))
1548
    {
1549
        assign_unexpected(std::move(unex));
1550
        return *this;
1551
    }
1552
1553
    /// Destroys the contained value, and then initializes the expected
1554
    /// value directly in-place.
1555
    template <typename... Args,
1556
              std::enable_if_t<std::is_constructible_v<T, Args...>>* = nullptr>
1557
    decltype(auto) emplace(Args&&... args) noexcept(
1558
        std::is_nothrow_constructible_v<T, Args...>)
1559
    {
1560
        emplace_impl(std::forward<Args>(args)...);
1561
        if constexpr (!std::is_void_v<T>) {
1562
            return this->get_value();
1563
        }
1564
    }
1565
1566
    using base::has_value;
1567
    constexpr explicit operator bool() const noexcept
1568
608M
    {
1569
608M
        return has_value();
1570
608M
    }
scn::v3::expected<long, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
105M
    {
1569
105M
        return has_value();
1570
105M
    }
scn::v3::expected<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
5.02M
    {
1569
5.02M
        return has_value();
1570
5.02M
    }
scn::v3::expected<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
40.1M
    {
1569
40.1M
        return has_value();
1570
40.1M
    }
scn::v3::expected<std::__1::regex_constants::syntax_option_type, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
10.3k
    {
1569
10.3k
        return has_value();
1570
10.3k
    }
Unexecuted instantiation: scn::v3::expected<wchar_t, scn::v3::scan_error>::operator bool() const
scn::v3::expected<char const*, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
30.8M
    {
1569
30.8M
        return has_value();
1570
30.8M
    }
scn::v3::expected<wchar_t const*, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
97.9M
    {
1569
97.9M
        return has_value();
1570
97.9M
    }
scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::eof_error>::operator bool() const
Line
Count
Source
1568
9.53M
    {
1569
9.53M
        return has_value();
1570
9.53M
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>::operator bool() const
scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, long>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
6.66M
    {
1569
6.66M
        return has_value();
1570
6.66M
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>::operator bool() const
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator bool() const
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::scan_error>::operator bool() const
Unexecuted instantiation: scn::v3::expected<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::operator bool() const
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error>::operator bool() const
scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::parse_error>::operator bool() const
Line
Count
Source
1568
35.6M
    {
1569
35.6M
        return has_value();
1570
35.6M
    }
scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator bool() const
Line
Count
Source
1568
2.40M
    {
1569
2.40M
        return has_value();
1570
2.40M
    }
scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
2.16M
    {
1569
2.16M
        return has_value();
1570
2.16M
    }
scn::v3::expected<std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
320k
    {
1569
320k
        return has_value();
1570
320k
    }
scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
23.7M
    {
1569
23.7M
        return has_value();
1570
23.7M
    }
scn::v3::expected<char const*, scn::v3::impl::eof_error>::operator bool() const
Line
Count
Source
1568
6.27M
    {
1569
6.27M
        return has_value();
1570
6.27M
    }
scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::eof_error>::operator bool() const
Line
Count
Source
1568
2.57k
    {
1569
2.57k
        return has_value();
1570
2.57k
    }
scn::v3::expected<std::__1::pair<char const*, long>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
6.71M
    {
1569
6.71M
        return has_value();
1570
6.71M
    }
scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::parse_error>::operator bool() const
Line
Count
Source
1568
8.05k
    {
1569
8.05k
        return has_value();
1570
8.05k
    }
scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator bool() const
Line
Count
Source
1568
1.14k
    {
1569
1.14k
        return has_value();
1570
1.14k
    }
scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
1.14k
    {
1569
1.14k
        return has_value();
1570
1.14k
    }
scn::v3::expected<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
16
    {
1569
16
        return has_value();
1570
16
    }
scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
13.1k
    {
1569
13.1k
        return has_value();
1570
13.1k
    }
scn::v3::expected<char const*, scn::v3::impl::parse_error>::operator bool() const
Line
Count
Source
1568
21.0M
    {
1569
21.0M
        return has_value();
1570
21.0M
    }
scn::v3::expected<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator bool() const
Line
Count
Source
1568
2.24M
    {
1569
2.24M
        return has_value();
1570
2.24M
    }
scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
2.16M
    {
1569
2.16M
        return has_value();
1570
2.16M
    }
scn::v3::expected<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
319k
    {
1569
319k
        return has_value();
1570
319k
    }
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::scan_error>::operator bool() const
scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
2.33M
    {
1569
2.33M
        return has_value();
1570
2.33M
    }
scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
364
    {
1569
364
        return has_value();
1570
364
    }
scn::v3::expected<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
2.34M
    {
1569
2.34M
        return has_value();
1570
2.34M
    }
scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::eof_error>::operator bool() const
Line
Count
Source
1568
814k
    {
1569
814k
        return has_value();
1570
814k
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>::operator bool() const
scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
16.2M
    {
1569
16.2M
        return has_value();
1570
16.2M
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>::operator bool() const
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator bool() const
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::scan_error>::operator bool() const
Unexecuted instantiation: scn::v3::expected<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::operator bool() const
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error>::operator bool() const
scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::parse_error>::operator bool() const
Line
Count
Source
1568
3.77M
    {
1569
3.77M
        return has_value();
1570
3.77M
    }
scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator bool() const
Line
Count
Source
1568
354k
    {
1569
354k
        return has_value();
1570
354k
    }
scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
351k
    {
1569
351k
        return has_value();
1570
351k
    }
scn::v3::expected<std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
46.7k
    {
1569
46.7k
        return has_value();
1570
46.7k
    }
scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
50.2M
    {
1569
50.2M
        return has_value();
1570
50.2M
    }
scn::v3::expected<wchar_t const*, scn::v3::impl::eof_error>::operator bool() const
Line
Count
Source
1568
809k
    {
1569
809k
        return has_value();
1570
809k
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::eof_error>::operator bool() const
scn::v3::expected<std::__1::pair<wchar_t const*, long>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
31.9M
    {
1569
31.9M
        return has_value();
1570
31.9M
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::parse_error>::operator bool() const
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator bool() const
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::scan_error>::operator bool() const
Unexecuted instantiation: scn::v3::expected<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::operator bool() const
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::scan_error>::operator bool() const
scn::v3::expected<wchar_t const*, scn::v3::impl::parse_error>::operator bool() const
Line
Count
Source
1568
3.71M
    {
1569
3.71M
        return has_value();
1570
3.71M
    }
scn::v3::expected<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator bool() const
Line
Count
Source
1568
380k
    {
1569
380k
        return has_value();
1570
380k
    }
scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
379k
    {
1569
379k
        return has_value();
1570
379k
    }
scn::v3::expected<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
46.7k
    {
1569
46.7k
        return has_value();
1570
46.7k
    }
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::scan_error>::operator bool() const
scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
277k
    {
1569
277k
        return has_value();
1570
277k
    }
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::scan_error>::operator bool() const
scn::v3::expected<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
287k
    {
1569
287k
        return has_value();
1570
287k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, signed char>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
337k
    {
1569
337k
        return has_value();
1570
337k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned char>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
324k
    {
1569
324k
        return has_value();
1570
324k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, int>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
423k
    {
1569
423k
        return has_value();
1570
423k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
365k
    {
1569
365k
        return has_value();
1570
365k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long long>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
431k
    {
1569
431k
        return has_value();
1570
431k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned long long>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
369k
    {
1569
369k
        return has_value();
1570
369k
    }
scn::v3::expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
4.78M
    {
1569
4.78M
        return has_value();
1570
4.78M
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, signed char>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
339k
    {
1569
339k
        return has_value();
1570
339k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned char>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
325k
    {
1569
325k
        return has_value();
1570
325k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, int>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
424k
    {
1569
424k
        return has_value();
1570
424k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned int>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
367k
    {
1569
367k
        return has_value();
1570
367k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long long>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
431k
    {
1569
431k
        return has_value();
1570
431k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned long long>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
371k
    {
1569
371k
        return has_value();
1570
371k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, signed char>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
82.3k
    {
1569
82.3k
        return has_value();
1570
82.3k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned char>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
82.2k
    {
1569
82.2k
        return has_value();
1570
82.2k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
82.4k
    {
1569
82.4k
        return has_value();
1570
82.4k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
82.2k
    {
1569
82.2k
        return has_value();
1570
82.2k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long long>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
82.5k
    {
1569
82.5k
        return has_value();
1570
82.5k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned long long>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
82.4k
    {
1569
82.4k
        return has_value();
1570
82.4k
    }
scn::v3::expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
20.3M
    {
1569
20.3M
        return has_value();
1570
20.3M
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, signed char>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
82.3k
    {
1569
82.3k
        return has_value();
1570
82.3k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned char>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
82.2k
    {
1569
82.2k
        return has_value();
1570
82.2k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, int>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
82.4k
    {
1569
82.4k
        return has_value();
1570
82.4k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned int>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
82.2k
    {
1569
82.2k
        return has_value();
1570
82.2k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long long>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
82.5k
    {
1569
82.5k
        return has_value();
1570
82.5k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned long long>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
82.4k
    {
1569
82.4k
        return has_value();
1570
82.4k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
161k
    {
1569
161k
        return has_value();
1570
161k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
161k
    {
1569
161k
        return has_value();
1570
161k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
162k
    {
1569
162k
        return has_value();
1570
162k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
19.6M
    {
1569
19.6M
        return has_value();
1570
19.6M
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
19.6M
    {
1569
19.6M
        return has_value();
1570
19.6M
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
19.6M
    {
1569
19.6M
        return has_value();
1570
19.6M
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, float>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
746k
    {
1569
746k
        return has_value();
1570
746k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, double>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
807k
    {
1569
807k
        return has_value();
1570
807k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long double>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
818k
    {
1569
818k
        return has_value();
1570
818k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, float>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
744k
    {
1569
744k
        return has_value();
1570
744k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, double>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
805k
    {
1569
805k
        return has_value();
1570
805k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long double>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
815k
    {
1569
815k
        return has_value();
1570
815k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, float>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
93.1k
    {
1569
93.1k
        return has_value();
1570
93.1k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
93.3k
    {
1569
93.3k
        return has_value();
1570
93.3k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long double>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
93.4k
    {
1569
93.4k
        return has_value();
1570
93.4k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, float>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
93.1k
    {
1569
93.1k
        return has_value();
1570
93.1k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, double>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
93.2k
    {
1569
93.2k
        return has_value();
1570
93.2k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long double>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
93.4k
    {
1569
93.4k
        return has_value();
1570
93.4k
    }
1571
1572
    /// Get the unexpected value, if one is contained in *this
1573
    constexpr error_type& error() & noexcept
1574
30.4M
    {
1575
30.4M
        SCN_EXPECT(!has_value());
1576
30.4M
        return this->get_unexpected().error();
1577
30.4M
    }
scn::v3::expected<long, scn::v3::scan_error>::error() &
Line
Count
Source
1574
2.86M
    {
1575
2.86M
        SCN_EXPECT(!has_value());
1576
2.86M
        return this->get_unexpected().error();
1577
2.86M
    }
scn::v3::expected<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, scn::v3::scan_error>::error() &
Line
Count
Source
1574
454k
    {
1575
454k
        SCN_EXPECT(!has_value());
1576
454k
        return this->get_unexpected().error();
1577
454k
    }
scn::v3::expected<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, scn::v3::scan_error>::error() &
Line
Count
Source
1574
913k
    {
1575
913k
        SCN_EXPECT(!has_value());
1576
913k
        return this->get_unexpected().error();
1577
913k
    }
Unexecuted instantiation: scn::v3::expected<std::__1::regex_constants::syntax_option_type, scn::v3::scan_error>::error() &
Unexecuted instantiation: scn::v3::expected<wchar_t, scn::v3::scan_error>::error() &
scn::v3::expected<char const*, scn::v3::scan_error>::error() &
Line
Count
Source
1574
931k
    {
1575
931k
        SCN_EXPECT(!has_value());
1576
931k
        return this->get_unexpected().error();
1577
931k
    }
scn::v3::expected<wchar_t const*, scn::v3::scan_error>::error() &
Line
Count
Source
1574
1.71M
    {
1575
1.71M
        SCN_EXPECT(!has_value());
1576
1.71M
        return this->get_unexpected().error();
1577
1.71M
    }
scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, long>, scn::v3::scan_error>::error() &
Line
Count
Source
1574
41.8k
    {
1575
41.8k
        SCN_EXPECT(!has_value());
1576
41.8k
        return this->get_unexpected().error();
1577
41.8k
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>::error() &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>::error() &
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::error() &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::scan_error>::error() &
Unexecuted instantiation: scn::v3::expected<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::error() &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error>::error() &
scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::eof_error>::error() &
Line
Count
Source
1574
29.3k
    {
1575
29.3k
        SCN_EXPECT(!has_value());
1576
29.3k
        return this->get_unexpected().error();
1577
29.3k
    }
scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::parse_error>::error() &
Line
Count
Source
1574
8.46M
    {
1575
8.46M
        SCN_EXPECT(!has_value());
1576
8.46M
        return this->get_unexpected().error();
1577
8.46M
    }
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::error() &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::scan_error>::error() &
scn::v3::expected<std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::error() &
Line
Count
Source
1574
8.86k
    {
1575
8.86k
        SCN_EXPECT(!has_value());
1576
8.86k
        return this->get_unexpected().error();
1577
8.86k
    }
scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::scan_error>::error() &
Line
Count
Source
1574
786k
    {
1575
786k
        SCN_EXPECT(!has_value());
1576
786k
        return this->get_unexpected().error();
1577
786k
    }
scn::v3::expected<std::__1::pair<char const*, long>, scn::v3::scan_error>::error() &
Line
Count
Source
1574
38.3k
    {
1575
38.3k
        SCN_EXPECT(!has_value());
1576
38.3k
        return this->get_unexpected().error();
1577
38.3k
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::eof_error>::error() &
scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::parse_error>::error() &
Line
Count
Source
1574
2.81k
    {
1575
2.81k
        SCN_EXPECT(!has_value());
1576
2.81k
        return this->get_unexpected().error();
1577
2.81k
    }
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::error() &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::scan_error>::error() &
scn::v3::expected<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::error() &
Line
Count
Source
1574
16
    {
1575
16
        SCN_EXPECT(!has_value());
1576
16
        return this->get_unexpected().error();
1577
16
    }
scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::scan_error>::error() &
Line
Count
Source
1574
6.56k
    {
1575
6.56k
        SCN_EXPECT(!has_value());
1576
6.56k
        return this->get_unexpected().error();
1577
6.56k
    }
scn::v3::expected<char const*, scn::v3::impl::eof_error>::error() &
Line
Count
Source
1574
7.47k
    {
1575
7.47k
        SCN_EXPECT(!has_value());
1576
7.47k
        return this->get_unexpected().error();
1577
7.47k
    }
scn::v3::expected<char const*, scn::v3::impl::parse_error>::error() &
Line
Count
Source
1574
8.25M
    {
1575
8.25M
        SCN_EXPECT(!has_value());
1576
8.25M
        return this->get_unexpected().error();
1577
8.25M
    }
Unexecuted instantiation: scn::v3::expected<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::error() &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::scan_error>::error() &
scn::v3::expected<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::error() &
Line
Count
Source
1574
9.25k
    {
1575
9.25k
        SCN_EXPECT(!has_value());
1576
9.25k
        return this->get_unexpected().error();
1577
9.25k
    }
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::scan_error>::error() &
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::scan_error>::error() &
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::scan_error>::error() &
Unexecuted instantiation: scn::v3::expected<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::scan_error>::error() &
scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>, scn::v3::scan_error>::error() &
Line
Count
Source
1574
5.18k
    {
1575
5.18k
        SCN_EXPECT(!has_value());
1576
5.18k
        return this->get_unexpected().error();
1577
5.18k
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>::error() &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>::error() &
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::error() &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::scan_error>::error() &
Unexecuted instantiation: scn::v3::expected<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::error() &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error>::error() &
scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::eof_error>::error() &
Line
Count
Source
1574
831
    {
1575
831
        SCN_EXPECT(!has_value());
1576
831
        return this->get_unexpected().error();
1577
831
    }
scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::parse_error>::error() &
Line
Count
Source
1574
1.48M
    {
1575
1.48M
        SCN_EXPECT(!has_value());
1576
1.48M
        return this->get_unexpected().error();
1577
1.48M
    }
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::error() &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::scan_error>::error() &
scn::v3::expected<std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::error() &
Line
Count
Source
1574
46.0k
    {
1575
46.0k
        SCN_EXPECT(!has_value());
1576
46.0k
        return this->get_unexpected().error();
1577
46.0k
    }
scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::scan_error>::error() &
Line
Count
Source
1574
1.82M
    {
1575
1.82M
        SCN_EXPECT(!has_value());
1576
1.82M
        return this->get_unexpected().error();
1577
1.82M
    }
scn::v3::expected<std::__1::pair<wchar_t const*, long>, scn::v3::scan_error>::error() &
Line
Count
Source
1574
6.88k
    {
1575
6.88k
        SCN_EXPECT(!has_value());
1576
6.88k
        return this->get_unexpected().error();
1577
6.88k
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::eof_error>::error() &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::parse_error>::error() &
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::error() &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::scan_error>::error() &
Unexecuted instantiation: scn::v3::expected<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::error() &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::scan_error>::error() &
scn::v3::expected<wchar_t const*, scn::v3::impl::eof_error>::error() &
Line
Count
Source
1574
360
    {
1575
360
        SCN_EXPECT(!has_value());
1576
360
        return this->get_unexpected().error();
1577
360
    }
scn::v3::expected<wchar_t const*, scn::v3::impl::parse_error>::error() &
Line
Count
Source
1574
1.42M
    {
1575
1.42M
        SCN_EXPECT(!has_value());
1576
1.42M
        return this->get_unexpected().error();
1577
1.42M
    }
Unexecuted instantiation: scn::v3::expected<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::error() &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::scan_error>::error() &
scn::v3::expected<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::error() &
Line
Count
Source
1574
46.0k
    {
1575
46.0k
        SCN_EXPECT(!has_value());
1576
46.0k
        return this->get_unexpected().error();
1577
46.0k
    }
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::scan_error>::error() &
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::scan_error>::error() &
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::scan_error>::error() &
Unexecuted instantiation: scn::v3::expected<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::scan_error>::error() &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error>::error() &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::impl::eof_error>::error() &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::impl::eof_error>::error() &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::impl::eof_error>::error() &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error>::error() &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::impl::eof_error>::error() &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::impl::eof_error>::error() &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::impl::eof_error>::error() &
scn::v3::expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, scn::v3::scan_error>::error() &
Line
Count
Source
1574
371k
    {
1575
371k
        SCN_EXPECT(!has_value());
1576
371k
        return this->get_unexpected().error();
1577
371k
    }
scn::v3::expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, scn::v3::scan_error>::error() &
Line
Count
Source
1574
743k
    {
1575
743k
        SCN_EXPECT(!has_value());
1576
743k
        return this->get_unexpected().error();
1577
743k
    }
1578
    constexpr const error_type& error() const& noexcept
1579
0
    {
1580
0
        SCN_EXPECT(!has_value());
1581
0
        return this->get_unexpected().error();
1582
0
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v3::expected<char const*, scn::v3::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>::error() const &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::parse_error>::error() const &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::parse_error>::error() const &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v3::expected<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v3::expected<char const*, scn::v3::impl::parse_error>::error() const &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>::error() const &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::parse_error>::error() const &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v3::expected<wchar_t const*, scn::v3::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::parse_error>::error() const &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v3::expected<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v3::expected<wchar_t const*, scn::v3::impl::parse_error>::error() const &
1583
    constexpr error_type&& error() && noexcept
1584
737k
    {
1585
737k
        SCN_EXPECT(!has_value());
1586
737k
        return std::move(this->get_unexpected().error());
1587
737k
    }
scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::eof_error>::error() &&
Line
Count
Source
1584
127k
    {
1585
127k
        SCN_EXPECT(!has_value());
1586
127k
        return std::move(this->get_unexpected().error());
1587
127k
    }
scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::eof_error>::error() &&
Line
Count
Source
1584
84.5k
    {
1585
84.5k
        SCN_EXPECT(!has_value());
1586
84.5k
        return std::move(this->get_unexpected().error());
1587
84.5k
    }
scn::v3::expected<char const*, scn::v3::impl::eof_error>::error() &&
Line
Count
Source
1584
53.6k
    {
1585
53.6k
        SCN_EXPECT(!has_value());
1586
53.6k
        return std::move(this->get_unexpected().error());
1587
53.6k
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>::error() &&
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::impl::eof_error>::error() &&
scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::parse_error>::error() &&
Line
Count
Source
1584
80.7k
    {
1585
80.7k
        SCN_EXPECT(!has_value());
1586
80.7k
        return std::move(this->get_unexpected().error());
1587
80.7k
    }
scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::eof_error>::error() &&
Line
Count
Source
1584
304
    {
1585
304
        SCN_EXPECT(!has_value());
1586
304
        return std::move(this->get_unexpected().error());
1587
304
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::impl::eof_error>::error() &&
scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::parse_error>::error() &&
Line
Count
Source
1584
1.13k
    {
1585
1.13k
        SCN_EXPECT(!has_value());
1586
1.13k
        return std::move(this->get_unexpected().error());
1587
1.13k
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v3::expected<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>::error() &&
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::impl::eof_error>::error() &&
scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::parse_error>::error() &&
Line
Count
Source
1584
300k
    {
1585
300k
        SCN_EXPECT(!has_value());
1586
300k
        return std::move(this->get_unexpected().error());
1587
300k
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::eof_error>::error() &&
scn::v3::expected<wchar_t const*, scn::v3::impl::eof_error>::error() &&
Line
Count
Source
1584
89.0k
    {
1585
89.0k
        SCN_EXPECT(!has_value());
1586
89.0k
        return std::move(this->get_unexpected().error());
1587
89.0k
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::parse_error>::error() &&
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v3::expected<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::error() &&
1588
    constexpr const error_type&& error() const&& noexcept
1589
    {
1590
        SCN_EXPECT(!has_value());
1591
        return std::move(this->get_unexpected().error());
1592
    }
1593
1594
    /// Get the expected value, if one is contained in *this
1595
    template <typename U = T, std::enable_if_t<!std::is_void_v<U>>* = nullptr>
1596
    constexpr U& value() & noexcept
1597
612M
    {
1598
612M
        SCN_EXPECT(has_value());
1599
612M
        return this->get_value();
1600
612M
    }
long& scn::v3::expected<long, scn::v3::scan_error>::value<long, (void*)0>() &
Line
Count
Source
1597
101M
    {
1598
101M
        SCN_EXPECT(has_value());
1599
101M
        return this->get_value();
1600
101M
    }
scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>& scn::v3::expected<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, scn::v3::scan_error>::value<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, (void*)0>() &
Line
Count
Source
1597
4.56M
    {
1598
4.56M
        SCN_EXPECT(has_value());
1599
4.56M
        return this->get_value();
1600
4.56M
    }
scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>& scn::v3::expected<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, scn::v3::scan_error>::value<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, (void*)0>() &
Line
Count
Source
1597
39.2M
    {
1598
39.2M
        SCN_EXPECT(has_value());
1599
39.2M
        return this->get_value();
1600
39.2M
    }
std::__1::regex_constants::syntax_option_type& scn::v3::expected<std::__1::regex_constants::syntax_option_type, scn::v3::scan_error>::value<std::__1::regex_constants::syntax_option_type, (void*)0>() &
Line
Count
Source
1597
10.3k
    {
1598
10.3k
        SCN_EXPECT(has_value());
1599
10.3k
        return this->get_value();
1600
10.3k
    }
Unexecuted instantiation: wchar_t& scn::v3::expected<wchar_t, scn::v3::scan_error>::value<wchar_t, (void*)0>() &
scn::v3::detail::basic_scan_buffer<char>::forward_iterator& scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::eof_error>::value<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, (void*)0>() &
Line
Count
Source
1597
14.5M
    {
1598
14.5M
        SCN_EXPECT(has_value());
1599
14.5M
        return this->get_value();
1600
14.5M
    }
scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator& scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::eof_error>::value<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, (void*)0>() &
Line
Count
Source
1597
21.1M
    {
1598
21.1M
        SCN_EXPECT(has_value());
1599
21.1M
        return this->get_value();
1600
21.1M
    }
char const*& scn::v3::expected<char const*, scn::v3::scan_error>::value<char const*, (void*)0>() &
Line
Count
Source
1597
23.1M
    {
1598
23.1M
        SCN_EXPECT(has_value());
1599
23.1M
        return this->get_value();
1600
23.1M
    }
wchar_t const*& scn::v3::expected<wchar_t const*, scn::v3::scan_error>::value<wchar_t const*, (void*)0>() &
Line
Count
Source
1597
95.4M
    {
1598
95.4M
        SCN_EXPECT(has_value());
1599
95.4M
        return this->get_value();
1600
95.4M
    }
char const*& scn::v3::expected<char const*, scn::v3::impl::eof_error>::value<char const*, (void*)0>() &
Line
Count
Source
1597
6.20M
    {
1598
6.20M
        SCN_EXPECT(has_value());
1599
6.20M
        return this->get_value();
1600
6.20M
    }
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>::value<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, (void*)0>() &
std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, long>& scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, long>, scn::v3::scan_error>::value<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, long>, (void*)0>() &
Line
Count
Source
1597
6.62M
    {
1598
6.62M
        SCN_EXPECT(has_value());
1599
6.62M
        return this->get_value();
1600
6.62M
    }
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>::value<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, (void*)0>() &
Unexecuted instantiation: std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>& scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::value<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, (void*)0>() &
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error>::value<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, (void*)0>() &
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::scan_error>::value<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, (void*)0>() &
Unexecuted instantiation: std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >& scn::v3::expected<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::value<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, (void*)0>() &
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error>::value<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, (void*)0>() &
scn::v3::detail::basic_scan_buffer<char>::forward_iterator& scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::parse_error>::value<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, (void*)0>() &
Line
Count
Source
1597
17.1M
    {
1598
17.1M
        SCN_EXPECT(has_value());
1599
17.1M
        return this->get_value();
1600
17.1M
    }
std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>& scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::value<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, (void*)0>() &
Line
Count
Source
1597
4.74M
    {
1598
4.74M
        SCN_EXPECT(has_value());
1599
4.74M
        return this->get_value();
1600
4.74M
    }
scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::impl::eof_error>::value<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, (void*)0>() &
Line
Count
Source
1597
2.16M
    {
1598
2.16M
        SCN_EXPECT(has_value());
1599
2.16M
        return this->get_value();
1600
2.16M
    }
scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::scan_error>::value<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, (void*)0>() &
Line
Count
Source
1597
2.16M
    {
1598
2.16M
        SCN_EXPECT(has_value());
1599
2.16M
        return this->get_value();
1600
2.16M
    }
std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >& scn::v3::expected<std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::value<std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, (void*)0>() &
Line
Count
Source
1597
311k
    {
1598
311k
        SCN_EXPECT(has_value());
1599
311k
        return this->get_value();
1600
311k
    }
scn::v3::detail::basic_scan_buffer<char>::forward_iterator& scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::scan_error>::value<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, (void*)0>() &
Line
Count
Source
1597
16.2M
    {
1598
16.2M
        SCN_EXPECT(has_value());
1599
16.2M
        return this->get_value();
1600
16.2M
    }
scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::eof_error>::value<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, (void*)0>() &
Line
Count
Source
1597
5.79k
    {
1598
5.79k
        SCN_EXPECT(has_value());
1599
5.79k
        return this->get_value();
1600
5.79k
    }
std::__1::pair<char const*, long>& scn::v3::expected<std::__1::pair<char const*, long>, scn::v3::scan_error>::value<std::__1::pair<char const*, long>, (void*)0>() &
Line
Count
Source
1597
6.67M
    {
1598
6.67M
        SCN_EXPECT(has_value());
1599
6.67M
        return this->get_value();
1600
6.67M
    }
scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::parse_error>::value<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, (void*)0>() &
Line
Count
Source
1597
2.09k
    {
1598
2.09k
        SCN_EXPECT(has_value());
1599
2.09k
        return this->get_value();
1600
2.09k
    }
std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>& scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::value<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, (void*)0>() &
Line
Count
Source
1597
1.51k
    {
1598
1.51k
        SCN_EXPECT(has_value());
1599
1.51k
        return this->get_value();
1600
1.51k
    }
scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::impl::eof_error>::value<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, (void*)0>() &
Line
Count
Source
1597
1.14k
    {
1598
1.14k
        SCN_EXPECT(has_value());
1599
1.14k
        return this->get_value();
1600
1.14k
    }
scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::scan_error>::value<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, (void*)0>() &
Line
Count
Source
1597
1.14k
    {
1598
1.14k
        SCN_EXPECT(has_value());
1599
1.14k
        return this->get_value();
1600
1.14k
    }
Unexecuted instantiation: std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >& scn::v3::expected<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::value<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, (void*)0>() &
scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::scan_error>::value<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, (void*)0>() &
Line
Count
Source
1597
5.81k
    {
1598
5.81k
        SCN_EXPECT(has_value());
1599
5.81k
        return this->get_value();
1600
5.81k
    }
char const*& scn::v3::expected<char const*, scn::v3::impl::parse_error>::value<char const*, (void*)0>() &
Line
Count
Source
1597
3.32M
    {
1598
3.32M
        SCN_EXPECT(has_value());
1599
3.32M
        return this->get_value();
1600
3.32M
    }
std::__1::pair<char const*, scn::v3::impl::sign_type>& scn::v3::expected<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::value<std::__1::pair<char const*, scn::v3::impl::sign_type>, (void*)0>() &
Line
Count
Source
1597
4.58M
    {
1598
4.58M
        SCN_EXPECT(has_value());
1599
4.58M
        return this->get_value();
1600
4.58M
    }
scn::v3::impl::parse_integer_prefix_result<char const*>& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::impl::eof_error>::value<scn::v3::impl::parse_integer_prefix_result<char const*>, (void*)0>() &
Line
Count
Source
1597
2.16M
    {
1598
2.16M
        SCN_EXPECT(has_value());
1599
2.16M
        return this->get_value();
1600
2.16M
    }
scn::v3::impl::parse_integer_prefix_result<char const*>& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::scan_error>::value<scn::v3::impl::parse_integer_prefix_result<char const*>, (void*)0>() &
Line
Count
Source
1597
2.16M
    {
1598
2.16M
        SCN_EXPECT(has_value());
1599
2.16M
        return this->get_value();
1600
2.16M
    }
std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >& scn::v3::expected<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::value<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, (void*)0>() &
Line
Count
Source
1597
309k
    {
1598
309k
        SCN_EXPECT(has_value());
1599
309k
        return this->get_value();
1600
309k
    }
Unexecuted instantiation: std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>& scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::scan_error>::value<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, (void*)0>() &
std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>& scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::scan_error>::value<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, (void*)0>() &
Line
Count
Source
1597
2.33M
    {
1598
2.33M
        SCN_EXPECT(has_value());
1599
2.33M
        return this->get_value();
1600
2.33M
    }
std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>& scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::scan_error>::value<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, (void*)0>() &
Line
Count
Source
1597
364
    {
1598
364
        SCN_EXPECT(has_value());
1599
364
        return this->get_value();
1600
364
    }
std::__1::pair<char const*, scn::v3::impl::sign_type>& scn::v3::expected<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::scan_error>::value<std::__1::pair<char const*, scn::v3::impl::sign_type>, (void*)0>() &
Line
Count
Source
1597
2.34M
    {
1598
2.34M
        SCN_EXPECT(has_value());
1599
2.34M
        return this->get_value();
1600
2.34M
    }
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>::value<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, (void*)0>() &
std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>& scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>, scn::v3::scan_error>::value<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>, (void*)0>() &
Line
Count
Source
1597
16.2M
    {
1598
16.2M
        SCN_EXPECT(has_value());
1599
16.2M
        return this->get_value();
1600
16.2M
    }
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>::value<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, (void*)0>() &
Unexecuted instantiation: std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>& scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::value<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, (void*)0>() &
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error>::value<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, (void*)0>() &
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::scan_error>::value<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, (void*)0>() &
Unexecuted instantiation: std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >& scn::v3::expected<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::value<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, (void*)0>() &
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error>::value<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, (void*)0>() &
scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator& scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::parse_error>::value<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, (void*)0>() &
Line
Count
Source
1597
1.02M
    {
1598
1.02M
        SCN_EXPECT(has_value());
1599
1.02M
        return this->get_value();
1600
1.02M
    }
std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>& scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::value<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, (void*)0>() &
Line
Count
Source
1597
631k
    {
1598
631k
        SCN_EXPECT(has_value());
1599
631k
        return this->get_value();
1600
631k
    }
scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::impl::eof_error>::value<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, (void*)0>() &
Line
Count
Source
1597
351k
    {
1598
351k
        SCN_EXPECT(has_value());
1599
351k
        return this->get_value();
1600
351k
    }
scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::scan_error>::value<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, (void*)0>() &
Line
Count
Source
1597
351k
    {
1598
351k
        SCN_EXPECT(has_value());
1599
351k
        return this->get_value();
1600
351k
    }
std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >& scn::v3::expected<std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::value<std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, (void*)0>() &
Line
Count
Source
1597
724
    {
1598
724
        SCN_EXPECT(has_value());
1599
724
        return this->get_value();
1600
724
    }
scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator& scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::scan_error>::value<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, (void*)0>() &
Line
Count
Source
1597
47.8M
    {
1598
47.8M
        SCN_EXPECT(has_value());
1599
47.8M
        return this->get_value();
1600
47.8M
    }
wchar_t const*& scn::v3::expected<wchar_t const*, scn::v3::impl::eof_error>::value<wchar_t const*, (void*)0>() &
Line
Count
Source
1597
40.9M
    {
1598
40.9M
        SCN_EXPECT(has_value());
1599
40.9M
        return this->get_value();
1600
40.9M
    }
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::eof_error>::value<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, (void*)0>() &
std::__1::pair<wchar_t const*, long>& scn::v3::expected<std::__1::pair<wchar_t const*, long>, scn::v3::scan_error>::value<std::__1::pair<wchar_t const*, long>, (void*)0>() &
Line
Count
Source
1597
31.9M
    {
1598
31.9M
        SCN_EXPECT(has_value());
1599
31.9M
        return this->get_value();
1600
31.9M
    }
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::parse_error>::value<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, (void*)0>() &
Unexecuted instantiation: std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>& scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::value<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, (void*)0>() &
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::impl::eof_error>::value<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, (void*)0>() &
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::scan_error>::value<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, (void*)0>() &
Unexecuted instantiation: std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >& scn::v3::expected<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::value<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, (void*)0>() &
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::scan_error>::value<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, (void*)0>() &
wchar_t const*& scn::v3::expected<wchar_t const*, scn::v3::impl::parse_error>::value<wchar_t const*, (void*)0>() &
Line
Count
Source
1597
1.01M
    {
1598
1.01M
        SCN_EXPECT(has_value());
1599
1.01M
        return this->get_value();
1600
1.01M
    }
std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>& scn::v3::expected<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::value<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, (void*)0>() &
Line
Count
Source
1597
668k
    {
1598
668k
        SCN_EXPECT(has_value());
1599
668k
        return this->get_value();
1600
668k
    }
scn::v3::impl::parse_integer_prefix_result<wchar_t const*>& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::impl::eof_error>::value<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, (void*)0>() &
Line
Count
Source
1597
379k
    {
1598
379k
        SCN_EXPECT(has_value());
1599
379k
        return this->get_value();
1600
379k
    }
scn::v3::impl::parse_integer_prefix_result<wchar_t const*>& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::scan_error>::value<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, (void*)0>() &
Line
Count
Source
1597
379k
    {
1598
379k
        SCN_EXPECT(has_value());
1599
379k
        return this->get_value();
1600
379k
    }
std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >& scn::v3::expected<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::value<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, (void*)0>() &
Line
Count
Source
1597
724
    {
1598
724
        SCN_EXPECT(has_value());
1599
724
        return this->get_value();
1600
724
    }
Unexecuted instantiation: std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>& scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::scan_error>::value<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, (void*)0>() &
std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>& scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::scan_error>::value<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, (void*)0>() &
Line
Count
Source
1597
277k
    {
1598
277k
        SCN_EXPECT(has_value());
1599
277k
        return this->get_value();
1600
277k
    }
Unexecuted instantiation: std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>& scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::scan_error>::value<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, (void*)0>() &
std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>& scn::v3::expected<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::scan_error>::value<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, (void*)0>() &
Line
Count
Source
1597
287k
    {
1598
287k
        SCN_EXPECT(has_value());
1599
287k
        return this->get_value();
1600
287k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, signed char>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, signed char>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, signed char>, (void*)0>() &
Line
Count
Source
1597
296k
    {
1598
296k
        SCN_EXPECT(has_value());
1599
296k
        return this->get_value();
1600
296k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned char>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned char>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned char>, (void*)0>() &
Line
Count
Source
1597
283k
    {
1598
283k
        SCN_EXPECT(has_value());
1599
283k
        return this->get_value();
1600
283k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, int>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, int>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, int>, (void*)0>() &
Line
Count
Source
1597
382k
    {
1598
382k
        SCN_EXPECT(has_value());
1599
382k
        return this->get_value();
1600
382k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>, (void*)0>() &
Line
Count
Source
1597
324k
    {
1598
324k
        SCN_EXPECT(has_value());
1599
324k
        return this->get_value();
1600
324k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long long>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long long>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long long>, (void*)0>() &
Line
Count
Source
1597
390k
    {
1598
390k
        SCN_EXPECT(has_value());
1599
390k
        return this->get_value();
1600
390k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned long long>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned long long>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned long long>, (void*)0>() &
Line
Count
Source
1597
328k
    {
1598
328k
        SCN_EXPECT(has_value());
1599
328k
        return this->get_value();
1600
328k
    }
scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >& scn::v3::expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, scn::v3::scan_error>::value<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, (void*)0>() &
Line
Count
Source
1597
4.41M
    {
1598
4.41M
        SCN_EXPECT(has_value());
1599
4.41M
        return this->get_value();
1600
4.41M
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, signed char>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, signed char>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, signed char>, (void*)0>() &
Line
Count
Source
1597
298k
    {
1598
298k
        SCN_EXPECT(has_value());
1599
298k
        return this->get_value();
1600
298k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned char>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned char>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned char>, (void*)0>() &
Line
Count
Source
1597
285k
    {
1598
285k
        SCN_EXPECT(has_value());
1599
285k
        return this->get_value();
1600
285k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, int>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, int>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, int>, (void*)0>() &
Line
Count
Source
1597
383k
    {
1598
383k
        SCN_EXPECT(has_value());
1599
383k
        return this->get_value();
1600
383k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned int>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned int>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned int>, (void*)0>() &
Line
Count
Source
1597
326k
    {
1598
326k
        SCN_EXPECT(has_value());
1599
326k
        return this->get_value();
1600
326k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long long>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long long>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long long>, (void*)0>() &
Line
Count
Source
1597
390k
    {
1598
390k
        SCN_EXPECT(has_value());
1599
390k
        return this->get_value();
1600
390k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned long long>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned long long>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned long long>, (void*)0>() &
Line
Count
Source
1597
330k
    {
1598
330k
        SCN_EXPECT(has_value());
1599
330k
        return this->get_value();
1600
330k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, signed char>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, signed char>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, signed char>, (void*)0>() &
Line
Count
Source
1597
595
    {
1598
595
        SCN_EXPECT(has_value());
1599
595
        return this->get_value();
1600
595
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned char>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned char>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned char>, (void*)0>() &
Line
Count
Source
1597
500
    {
1598
500
        SCN_EXPECT(has_value());
1599
500
        return this->get_value();
1600
500
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>, (void*)0>() &
Line
Count
Source
1597
711
    {
1598
711
        SCN_EXPECT(has_value());
1599
711
        return this->get_value();
1600
711
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>, (void*)0>() &
Line
Count
Source
1597
564
    {
1598
564
        SCN_EXPECT(has_value());
1599
564
        return this->get_value();
1600
564
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long long>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long long>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long long>, (void*)0>() &
Line
Count
Source
1597
864
    {
1598
864
        SCN_EXPECT(has_value());
1599
864
        return this->get_value();
1600
864
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned long long>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned long long>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned long long>, (void*)0>() &
Line
Count
Source
1597
694
    {
1598
694
        SCN_EXPECT(has_value());
1599
694
        return this->get_value();
1600
694
    }
scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >& scn::v3::expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, scn::v3::scan_error>::value<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, (void*)0>() &
Line
Count
Source
1597
19.6M
    {
1598
19.6M
        SCN_EXPECT(has_value());
1599
19.6M
        return this->get_value();
1600
19.6M
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, signed char>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, signed char>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, signed char>, (void*)0>() &
Line
Count
Source
1597
595
    {
1598
595
        SCN_EXPECT(has_value());
1599
595
        return this->get_value();
1600
595
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned char>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned char>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned char>, (void*)0>() &
Line
Count
Source
1597
500
    {
1598
500
        SCN_EXPECT(has_value());
1599
500
        return this->get_value();
1600
500
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, int>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, int>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, int>, (void*)0>() &
Line
Count
Source
1597
711
    {
1598
711
        SCN_EXPECT(has_value());
1599
711
        return this->get_value();
1600
711
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned int>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned int>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned int>, (void*)0>() &
Line
Count
Source
1597
564
    {
1598
564
        SCN_EXPECT(has_value());
1599
564
        return this->get_value();
1600
564
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long long>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long long>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long long>, (void*)0>() &
Line
Count
Source
1597
864
    {
1598
864
        SCN_EXPECT(has_value());
1599
864
        return this->get_value();
1600
864
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned long long>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned long long>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned long long>, (void*)0>() &
Line
Count
Source
1597
694
    {
1598
694
        SCN_EXPECT(has_value());
1599
694
        return this->get_value();
1600
694
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, (void*)0>() &
Line
Count
Source
1597
151k
    {
1598
151k
        SCN_EXPECT(has_value());
1599
151k
        return this->get_value();
1600
151k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, (void*)0>() &
Line
Count
Source
1597
151k
    {
1598
151k
        SCN_EXPECT(has_value());
1599
151k
        return this->get_value();
1600
151k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, (void*)0>() &
Line
Count
Source
1597
152k
    {
1598
152k
        SCN_EXPECT(has_value());
1599
152k
        return this->get_value();
1600
152k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, (void*)0>() &
Line
Count
Source
1597
19.6M
    {
1598
19.6M
        SCN_EXPECT(has_value());
1599
19.6M
        return this->get_value();
1600
19.6M
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, (void*)0>() &
Line
Count
Source
1597
19.6M
    {
1598
19.6M
        SCN_EXPECT(has_value());
1599
19.6M
        return this->get_value();
1600
19.6M
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, (void*)0>() &
Line
Count
Source
1597
19.6M
    {
1598
19.6M
        SCN_EXPECT(has_value());
1599
19.6M
        return this->get_value();
1600
19.6M
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, float>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, float>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, float>, (void*)0>() &
Line
Count
Source
1597
707k
    {
1598
707k
        SCN_EXPECT(has_value());
1599
707k
        return this->get_value();
1600
707k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, double>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, double>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, double>, (void*)0>() &
Line
Count
Source
1597
768k
    {
1598
768k
        SCN_EXPECT(has_value());
1599
768k
        return this->get_value();
1600
768k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long double>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long double>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long double>, (void*)0>() &
Line
Count
Source
1597
779k
    {
1598
779k
        SCN_EXPECT(has_value());
1599
779k
        return this->get_value();
1600
779k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, float>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, float>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, float>, (void*)0>() &
Line
Count
Source
1597
706k
    {
1598
706k
        SCN_EXPECT(has_value());
1599
706k
        return this->get_value();
1600
706k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, double>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, double>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, double>, (void*)0>() &
Line
Count
Source
1597
766k
    {
1598
766k
        SCN_EXPECT(has_value());
1599
766k
        return this->get_value();
1600
766k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long double>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long double>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long double>, (void*)0>() &
Line
Count
Source
1597
776k
    {
1598
776k
        SCN_EXPECT(has_value());
1599
776k
        return this->get_value();
1600
776k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, float>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, float>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, float>, (void*)0>() &
Line
Count
Source
1597
15.5k
    {
1598
15.5k
        SCN_EXPECT(has_value());
1599
15.5k
        return this->get_value();
1600
15.5k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>, (void*)0>() &
Line
Count
Source
1597
15.6k
    {
1598
15.6k
        SCN_EXPECT(has_value());
1599
15.6k
        return this->get_value();
1600
15.6k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long double>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long double>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long double>, (void*)0>() &
Line
Count
Source
1597
15.8k
    {
1598
15.8k
        SCN_EXPECT(has_value());
1599
15.8k
        return this->get_value();
1600
15.8k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, float>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, float>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, float>, (void*)0>() &
Line
Count
Source
1597
15.5k
    {
1598
15.5k
        SCN_EXPECT(has_value());
1599
15.5k
        return this->get_value();
1600
15.5k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, double>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, double>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, double>, (void*)0>() &
Line
Count
Source
1597
15.6k
    {
1598
15.6k
        SCN_EXPECT(has_value());
1599
15.6k
        return this->get_value();
1600
15.6k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long double>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long double>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long double>, (void*)0>() &
Line
Count
Source
1597
15.8k
    {
1598
15.8k
        SCN_EXPECT(has_value());
1599
15.8k
        return this->get_value();
1600
15.8k
    }
1601
    template <typename U = T, std::enable_if_t<!std::is_void_v<U>>* = nullptr>
1602
    constexpr const U& value() const& noexcept
1603
0
    {
1604
0
        SCN_EXPECT(has_value());
1605
0
        return this->get_value();
1606
0
    }
Unexecuted instantiation: scn::v3::detail::basic_scan_buffer<char>::forward_iterator const& scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::eof_error>::value<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, (void*)0>() const &
Unexecuted instantiation: scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator const& scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::eof_error>::value<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, (void*)0>() const &
Unexecuted instantiation: char const* const& scn::v3::expected<char const*, scn::v3::impl::eof_error>::value<char const*, (void*)0>() const &
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> const& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>::value<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, (void*)0>() const &
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> > const& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error>::value<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, (void*)0>() const &
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> const& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>::value<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, (void*)0>() const &
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator> const& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::impl::eof_error>::value<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, (void*)0>() const &
Unexecuted instantiation: scn::v3::detail::basic_scan_buffer<char>::forward_iterator const& scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::parse_error>::value<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, (void*)0>() const &
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> const& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::eof_error>::value<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, (void*)0>() const &
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> > const& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::impl::eof_error>::value<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, (void*)0>() const &
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> const& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::parse_error>::value<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, (void*)0>() const &
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<char const*> const& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::impl::eof_error>::value<scn::v3::impl::parse_integer_prefix_result<char const*>, (void*)0>() const &
Unexecuted instantiation: std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type> const& scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::value<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, (void*)0>() const &
Unexecuted instantiation: std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type> const& scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::value<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, (void*)0>() const &
Unexecuted instantiation: std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type> const& scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::value<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, (void*)0>() const &
Unexecuted instantiation: std::__1::pair<char const*, scn::v3::impl::sign_type> const& scn::v3::expected<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::value<std::__1::pair<char const*, scn::v3::impl::sign_type>, (void*)0>() const &
Unexecuted instantiation: char const* const& scn::v3::expected<char const*, scn::v3::impl::parse_error>::value<char const*, (void*)0>() const &
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> const& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>::value<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, (void*)0>() const &
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> > const& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error>::value<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, (void*)0>() const &
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> const& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>::value<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, (void*)0>() const &
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator> const& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::impl::eof_error>::value<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, (void*)0>() const &
Unexecuted instantiation: scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator const& scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::parse_error>::value<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, (void*)0>() const &
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> const& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::eof_error>::value<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, (void*)0>() const &
Unexecuted instantiation: wchar_t const* const& scn::v3::expected<wchar_t const*, scn::v3::impl::eof_error>::value<wchar_t const*, (void*)0>() const &
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> > const& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::impl::eof_error>::value<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, (void*)0>() const &
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> const& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::parse_error>::value<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, (void*)0>() const &
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<wchar_t const*> const& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::impl::eof_error>::value<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, (void*)0>() const &
Unexecuted instantiation: std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type> const& scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::value<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, (void*)0>() const &
Unexecuted instantiation: std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type> const& scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::value<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, (void*)0>() const &
Unexecuted instantiation: std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type> const& scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::value<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, (void*)0>() const &
Unexecuted instantiation: std::__1::pair<wchar_t const*, scn::v3::impl::sign_type> const& scn::v3::expected<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::value<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, (void*)0>() const &
Unexecuted instantiation: wchar_t const* const& scn::v3::expected<wchar_t const*, scn::v3::impl::parse_error>::value<wchar_t const*, (void*)0>() const &
1607
    template <typename U = T, std::enable_if_t<!std::is_void_v<U>>* = nullptr>
1608
    constexpr U&& value() && noexcept
1609
    {
1610
        SCN_EXPECT(has_value());
1611
        return std::move(this->get_value());
1612
    }
1613
    template <typename U = T, std::enable_if_t<!std::is_void_v<U>>* = nullptr>
1614
    constexpr const U&& value() const&& noexcept
1615
    {
1616
        SCN_EXPECT(has_value());
1617
        return std::move(this->get_value());
1618
    }
1619
1620
    /// Get the expected value, if one is contained in *this
1621
    template <typename U = T, std::enable_if_t<!std::is_void_v<U>>* = nullptr>
1622
    constexpr U& operator*() & noexcept
1623
191M
    {
1624
191M
        return value();
1625
191M
    }
long& scn::v3::expected<long, scn::v3::scan_error>::operator*<long, (void*)0>() &
Line
Count
Source
1623
91.9M
    {
1624
91.9M
        return value();
1625
91.9M
    }
scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>& scn::v3::expected<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, scn::v3::scan_error>::operator*<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, (void*)0>() &
Line
Count
Source
1623
4.12M
    {
1624
4.12M
        return value();
1625
4.12M
    }
scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>& scn::v3::expected<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, scn::v3::scan_error>::operator*<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, (void*)0>() &
Line
Count
Source
1623
31.4M
    {
1624
31.4M
        return value();
1625
31.4M
    }
scn::v3::detail::basic_scan_buffer<char>::forward_iterator& scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::eof_error>::operator*<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, (void*)0>() &
Line
Count
Source
1623
1.79M
    {
1624
1.79M
        return value();
1625
1.79M
    }
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>::operator*<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, (void*)0>() &
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>::operator*<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, (void*)0>() &
scn::v3::detail::basic_scan_buffer<char>::forward_iterator& scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::parse_error>::operator*<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, (void*)0>() &
Line
Count
Source
1623
7.46M
    {
1624
7.46M
        return value();
1625
7.46M
    }
char const*& scn::v3::expected<char const*, scn::v3::impl::eof_error>::operator*<char const*, (void*)0>() &
Line
Count
Source
1623
1.38M
    {
1624
1.38M
        return value();
1625
1.38M
    }
scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::eof_error>::operator*<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, (void*)0>() &
Line
Count
Source
1623
232
    {
1624
232
        return value();
1625
232
    }
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::parse_error>::operator*<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, (void*)0>() &
char const*& scn::v3::expected<char const*, scn::v3::impl::parse_error>::operator*<char const*, (void*)0>() &
Line
Count
Source
1623
3.32M
    {
1624
3.32M
        return value();
1625
3.32M
    }
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error>::operator*<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, (void*)0>() &
scn::v3::detail::basic_scan_buffer<char>::forward_iterator& scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::scan_error>::operator*<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, (void*)0>() &
Line
Count
Source
1623
3.32M
    {
1624
3.32M
        return value();
1625
3.32M
    }
scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::scan_error>::operator*<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, (void*)0>() &
Line
Count
Source
1623
762
    {
1624
762
        return value();
1625
762
    }
char const*& scn::v3::expected<char const*, scn::v3::scan_error>::operator*<char const*, (void*)0>() &
Line
Count
Source
1623
3.34M
    {
1624
3.34M
        return value();
1625
3.34M
    }
scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator& scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::eof_error>::operator*<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, (void*)0>() &
Line
Count
Source
1623
5.27k
    {
1624
5.27k
        return value();
1625
5.27k
    }
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>::operator*<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, (void*)0>() &
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>::operator*<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, (void*)0>() &
scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator& scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::parse_error>::operator*<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, (void*)0>() &
Line
Count
Source
1623
104k
    {
1624
104k
        return value();
1625
104k
    }
wchar_t const*& scn::v3::expected<wchar_t const*, scn::v3::impl::eof_error>::operator*<wchar_t const*, (void*)0>() &
Line
Count
Source
1623
3.81k
    {
1624
3.81k
        return value();
1625
3.81k
    }
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::eof_error>::operator*<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, (void*)0>() &
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::parse_error>::operator*<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, (void*)0>() &
wchar_t const*& scn::v3::expected<wchar_t const*, scn::v3::impl::parse_error>::operator*<wchar_t const*, (void*)0>() &
Line
Count
Source
1623
41.9k
    {
1624
41.9k
        return value();
1625
41.9k
    }
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error>::operator*<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, (void*)0>() &
scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator& scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::scan_error>::operator*<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, (void*)0>() &
Line
Count
Source
1623
7.87M
    {
1624
7.87M
        return value();
1625
7.87M
    }
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::scan_error>::operator*<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, (void*)0>() &
wchar_t const*& scn::v3::expected<wchar_t const*, scn::v3::scan_error>::operator*<wchar_t const*, (void*)0>() &
Line
Count
Source
1623
15.7M
    {
1624
15.7M
        return value();
1625
15.7M
    }
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error>::operator*<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, (void*)0>() &
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::impl::eof_error>::operator*<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, (void*)0>() &
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::impl::eof_error>::operator*<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, (void*)0>() &
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<char const*>& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::impl::eof_error>::operator*<scn::v3::impl::parse_integer_prefix_result<char const*>, (void*)0>() &
Unexecuted instantiation: std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>& scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator*<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, (void*)0>() &
Unexecuted instantiation: std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>& scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator*<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, (void*)0>() &
Unexecuted instantiation: std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>& scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator*<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, (void*)0>() &
Unexecuted instantiation: std::__1::pair<char const*, scn::v3::impl::sign_type>& scn::v3::expected<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator*<std::__1::pair<char const*, scn::v3::impl::sign_type>, (void*)0>() &
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error>::operator*<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, (void*)0>() &
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::impl::eof_error>::operator*<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, (void*)0>() &
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::impl::eof_error>::operator*<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, (void*)0>() &
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<wchar_t const*>& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::impl::eof_error>::operator*<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, (void*)0>() &
Unexecuted instantiation: std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>& scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator*<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, (void*)0>() &
Unexecuted instantiation: std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>& scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator*<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, (void*)0>() &
Unexecuted instantiation: std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>& scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator*<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, (void*)0>() &
Unexecuted instantiation: std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>& scn::v3::expected<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator*<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, (void*)0>() &
scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >& scn::v3::expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, scn::v3::scan_error>::operator*<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, (void*)0>() &
Line
Count
Source
1623
4.02M
    {
1624
4.02M
        return value();
1625
4.02M
    }
scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >& scn::v3::expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, scn::v3::scan_error>::operator*<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, (void*)0>() &
Line
Count
Source
1623
15.7M
    {
1624
15.7M
        return value();
1625
15.7M
    }
1626
    template <typename U = T, std::enable_if_t<!std::is_void_v<U>>* = nullptr>
1627
    constexpr const U& operator*() const& noexcept
1628
0
    {
1629
0
        return value();
1630
0
    }
Unexecuted instantiation: scn::v3::detail::basic_scan_buffer<char>::forward_iterator const& scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::eof_error>::operator*<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, (void*)0>() const &
Unexecuted instantiation: scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator const& scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::eof_error>::operator*<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, (void*)0>() const &
Unexecuted instantiation: char const* const& scn::v3::expected<char const*, scn::v3::impl::eof_error>::operator*<char const*, (void*)0>() const &
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> const& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>::operator*<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, (void*)0>() const &
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> > const& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error>::operator*<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, (void*)0>() const &
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> const& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>::operator*<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, (void*)0>() const &
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator> const& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::impl::eof_error>::operator*<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, (void*)0>() const &
Unexecuted instantiation: scn::v3::detail::basic_scan_buffer<char>::forward_iterator const& scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::parse_error>::operator*<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, (void*)0>() const &
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> const& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::eof_error>::operator*<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, (void*)0>() const &
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> > const& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::impl::eof_error>::operator*<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, (void*)0>() const &
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> const& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::parse_error>::operator*<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, (void*)0>() const &
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<char const*> const& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::impl::eof_error>::operator*<scn::v3::impl::parse_integer_prefix_result<char const*>, (void*)0>() const &
Unexecuted instantiation: std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type> const& scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator*<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, (void*)0>() const &
Unexecuted instantiation: std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type> const& scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator*<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, (void*)0>() const &
Unexecuted instantiation: std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type> const& scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator*<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, (void*)0>() const &
Unexecuted instantiation: std::__1::pair<char const*, scn::v3::impl::sign_type> const& scn::v3::expected<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator*<std::__1::pair<char const*, scn::v3::impl::sign_type>, (void*)0>() const &
Unexecuted instantiation: char const* const& scn::v3::expected<char const*, scn::v3::impl::parse_error>::operator*<char const*, (void*)0>() const &
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> const& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>::operator*<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, (void*)0>() const &
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> > const& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error>::operator*<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, (void*)0>() const &
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> const& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>::operator*<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, (void*)0>() const &
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator> const& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::impl::eof_error>::operator*<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, (void*)0>() const &
Unexecuted instantiation: scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator const& scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::parse_error>::operator*<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, (void*)0>() const &
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> const& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::eof_error>::operator*<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, (void*)0>() const &
Unexecuted instantiation: wchar_t const* const& scn::v3::expected<wchar_t const*, scn::v3::impl::eof_error>::operator*<wchar_t const*, (void*)0>() const &
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> > const& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::impl::eof_error>::operator*<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, (void*)0>() const &
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> const& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::parse_error>::operator*<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, (void*)0>() const &
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<wchar_t const*> const& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::impl::eof_error>::operator*<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, (void*)0>() const &
Unexecuted instantiation: std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type> const& scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator*<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, (void*)0>() const &
Unexecuted instantiation: std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type> const& scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator*<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, (void*)0>() const &
Unexecuted instantiation: std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type> const& scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator*<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, (void*)0>() const &
Unexecuted instantiation: std::__1::pair<wchar_t const*, scn::v3::impl::sign_type> const& scn::v3::expected<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator*<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, (void*)0>() const &
Unexecuted instantiation: wchar_t const* const& scn::v3::expected<wchar_t const*, scn::v3::impl::parse_error>::operator*<wchar_t const*, (void*)0>() const &
1631
    template <typename U = T, std::enable_if_t<!std::is_void_v<U>>* = nullptr>
1632
    constexpr U&& operator*() && noexcept
1633
353M
    {
1634
353M
        return std::move(value());
1635
353M
    }
std::__1::regex_constants::syntax_option_type&& scn::v3::expected<std::__1::regex_constants::syntax_option_type, scn::v3::scan_error>::operator*<std::__1::regex_constants::syntax_option_type, (void*)0>() &&
Line
Count
Source
1633
10.3k
    {
1634
10.3k
        return std::move(value());
1635
10.3k
    }
Unexecuted instantiation: wchar_t&& scn::v3::expected<wchar_t, scn::v3::scan_error>::operator*<wchar_t, (void*)0>() &&
scn::v3::detail::basic_scan_buffer<char>::forward_iterator&& scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::eof_error>::operator*<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, (void*)0>() &&
Line
Count
Source
1633
12.7M
    {
1634
12.7M
        return std::move(value());
1635
12.7M
    }
scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator&& scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::eof_error>::operator*<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, (void*)0>() &&
Line
Count
Source
1633
21.1M
    {
1634
21.1M
        return std::move(value());
1635
21.1M
    }
char const*&& scn::v3::expected<char const*, scn::v3::scan_error>::operator*<char const*, (void*)0>() &&
Line
Count
Source
1633
19.7M
    {
1634
19.7M
        return std::move(value());
1635
19.7M
    }
wchar_t const*&& scn::v3::expected<wchar_t const*, scn::v3::scan_error>::operator*<wchar_t const*, (void*)0>() &&
Line
Count
Source
1633
79.7M
    {
1634
79.7M
        return std::move(value());
1635
79.7M
    }
char const*&& scn::v3::expected<char const*, scn::v3::impl::eof_error>::operator*<char const*, (void*)0>() &&
Line
Count
Source
1633
4.81M
    {
1634
4.81M
        return std::move(value());
1635
4.81M
    }
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>&& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>::operator*<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, (void*)0>() &&
std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, long>&& scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, long>, scn::v3::scan_error>::operator*<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, long>, (void*)0>() &&
Line
Count
Source
1633
6.62M
    {
1634
6.62M
        return std::move(value());
1635
6.62M
    }
Unexecuted instantiation: std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>&& scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator*<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, (void*)0>() &&
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>&& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>::operator*<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, (void*)0>() &&
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >&& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error>::operator*<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, (void*)0>() &&
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >&& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::scan_error>::operator*<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, (void*)0>() &&
Unexecuted instantiation: std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&& scn::v3::expected<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::operator*<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, (void*)0>() &&
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>&& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error>::operator*<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, (void*)0>() &&
std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>&& scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator*<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, (void*)0>() &&
Line
Count
Source
1633
4.50M
    {
1634
4.50M
        return std::move(value());
1635
4.50M
    }
scn::v3::detail::basic_scan_buffer<char>::forward_iterator&& scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::parse_error>::operator*<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, (void*)0>() &&
Line
Count
Source
1633
9.65M
    {
1634
9.65M
        return std::move(value());
1635
9.65M
    }
scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>&& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::impl::eof_error>::operator*<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, (void*)0>() &&
Line
Count
Source
1633
2.16M
    {
1634
2.16M
        return std::move(value());
1635
2.16M
    }
scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>&& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::scan_error>::operator*<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, (void*)0>() &&
Line
Count
Source
1633
2.16M
    {
1634
2.16M
        return std::move(value());
1635
2.16M
    }
std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&& scn::v3::expected<std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::operator*<std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, (void*)0>() &&
Line
Count
Source
1633
311k
    {
1634
311k
        return std::move(value());
1635
311k
    }
scn::v3::detail::basic_scan_buffer<char>::forward_iterator&& scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::scan_error>::operator*<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, (void*)0>() &&
Line
Count
Source
1633
12.9M
    {
1634
12.9M
        return std::move(value());
1635
12.9M
    }
scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::eof_error>::operator*<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, (void*)0>() &&
Line
Count
Source
1633
5.56k
    {
1634
5.56k
        return std::move(value());
1635
5.56k
    }
std::__1::pair<char const*, long>&& scn::v3::expected<std::__1::pair<char const*, long>, scn::v3::scan_error>::operator*<std::__1::pair<char const*, long>, (void*)0>() &&
Line
Count
Source
1633
6.67M
    {
1634
6.67M
        return std::move(value());
1635
6.67M
    }
std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>&& scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator*<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, (void*)0>() &&
Line
Count
Source
1633
1.51k
    {
1634
1.51k
        return std::move(value());
1635
1.51k
    }
scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::parse_error>::operator*<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, (void*)0>() &&
Line
Count
Source
1633
2.09k
    {
1634
2.09k
        return std::move(value());
1635
2.09k
    }
scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >&& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::impl::eof_error>::operator*<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, (void*)0>() &&
Line
Count
Source
1633
1.14k
    {
1634
1.14k
        return std::move(value());
1635
1.14k
    }
scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >&& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::scan_error>::operator*<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, (void*)0>() &&
Line
Count
Source
1633
1.14k
    {
1634
1.14k
        return std::move(value());
1635
1.14k
    }
Unexecuted instantiation: std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&& scn::v3::expected<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::operator*<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, (void*)0>() &&
scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::scan_error>::operator*<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, (void*)0>() &&
Line
Count
Source
1633
5.05k
    {
1634
5.05k
        return std::move(value());
1635
5.05k
    }
std::__1::pair<char const*, scn::v3::impl::sign_type>&& scn::v3::expected<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator*<std::__1::pair<char const*, scn::v3::impl::sign_type>, (void*)0>() &&
Line
Count
Source
1633
4.50M
    {
1634
4.50M
        return std::move(value());
1635
4.50M
    }
scn::v3::impl::parse_integer_prefix_result<char const*>&& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::impl::eof_error>::operator*<scn::v3::impl::parse_integer_prefix_result<char const*>, (void*)0>() &&
Line
Count
Source
1633
2.16M
    {
1634
2.16M
        return std::move(value());
1635
2.16M
    }
scn::v3::impl::parse_integer_prefix_result<char const*>&& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::scan_error>::operator*<scn::v3::impl::parse_integer_prefix_result<char const*>, (void*)0>() &&
Line
Count
Source
1633
2.16M
    {
1634
2.16M
        return std::move(value());
1635
2.16M
    }
std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&& scn::v3::expected<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::operator*<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, (void*)0>() &&
Line
Count
Source
1633
309k
    {
1634
309k
        return std::move(value());
1635
309k
    }
long&& scn::v3::expected<long, scn::v3::scan_error>::operator*<long, (void*)0>() &&
Line
Count
Source
1633
9.19M
    {
1634
9.19M
        return std::move(value());
1635
9.19M
    }
Unexecuted instantiation: std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>&& scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::scan_error>::operator*<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, (void*)0>() &&
std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>&& scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::scan_error>::operator*<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, (void*)0>() &&
Line
Count
Source
1633
2.33M
    {
1634
2.33M
        return std::move(value());
1635
2.33M
    }
std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>&& scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::scan_error>::operator*<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, (void*)0>() &&
Line
Count
Source
1633
364
    {
1634
364
        return std::move(value());
1635
364
    }
std::__1::pair<char const*, scn::v3::impl::sign_type>&& scn::v3::expected<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::scan_error>::operator*<std::__1::pair<char const*, scn::v3::impl::sign_type>, (void*)0>() &&
Line
Count
Source
1633
2.34M
    {
1634
2.34M
        return std::move(value());
1635
2.34M
    }
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>&& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>::operator*<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, (void*)0>() &&
std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>&& scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>, scn::v3::scan_error>::operator*<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>, (void*)0>() &&
Line
Count
Source
1633
16.2M
    {
1634
16.2M
        return std::move(value());
1635
16.2M
    }
Unexecuted instantiation: std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>&& scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator*<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, (void*)0>() &&
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>&& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>::operator*<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, (void*)0>() &&
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >&& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error>::operator*<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, (void*)0>() &&
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >&& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::scan_error>::operator*<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, (void*)0>() &&
Unexecuted instantiation: std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&& scn::v3::expected<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::operator*<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, (void*)0>() &&
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>&& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error>::operator*<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, (void*)0>() &&
std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>&& scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator*<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, (void*)0>() &&
Line
Count
Source
1633
629k
    {
1634
629k
        return std::move(value());
1635
629k
    }
scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator&& scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::parse_error>::operator*<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, (void*)0>() &&
Line
Count
Source
1633
918k
    {
1634
918k
        return std::move(value());
1635
918k
    }
scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>&& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::impl::eof_error>::operator*<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, (void*)0>() &&
Line
Count
Source
1633
351k
    {
1634
351k
        return std::move(value());
1635
351k
    }
scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>&& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::scan_error>::operator*<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, (void*)0>() &&
Line
Count
Source
1633
351k
    {
1634
351k
        return std::move(value());
1635
351k
    }
std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&& scn::v3::expected<std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::operator*<std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, (void*)0>() &&
Line
Count
Source
1633
724
    {
1634
724
        return std::move(value());
1635
724
    }
scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator&& scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::scan_error>::operator*<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, (void*)0>() &&
Line
Count
Source
1633
39.9M
    {
1634
39.9M
        return std::move(value());
1635
39.9M
    }
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::eof_error>::operator*<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, (void*)0>() &&
wchar_t const*&& scn::v3::expected<wchar_t const*, scn::v3::impl::eof_error>::operator*<wchar_t const*, (void*)0>() &&
Line
Count
Source
1633
40.9M
    {
1634
40.9M
        return std::move(value());
1635
40.9M
    }
std::__1::pair<wchar_t const*, long>&& scn::v3::expected<std::__1::pair<wchar_t const*, long>, scn::v3::scan_error>::operator*<std::__1::pair<wchar_t const*, long>, (void*)0>() &&
Line
Count
Source
1633
31.9M
    {
1634
31.9M
        return std::move(value());
1635
31.9M
    }
Unexecuted instantiation: std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>&& scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator*<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, (void*)0>() &&
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::parse_error>::operator*<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, (void*)0>() &&
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >&& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::impl::eof_error>::operator*<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, (void*)0>() &&
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >&& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::scan_error>::operator*<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, (void*)0>() &&
Unexecuted instantiation: std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&& scn::v3::expected<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::operator*<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, (void*)0>() &&
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::scan_error>::operator*<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, (void*)0>() &&
std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>&& scn::v3::expected<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator*<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, (void*)0>() &&
Line
Count
Source
1633
667k
    {
1634
667k
        return std::move(value());
1635
667k
    }
wchar_t const*&& scn::v3::expected<wchar_t const*, scn::v3::impl::parse_error>::operator*<wchar_t const*, (void*)0>() &&
Line
Count
Source
1633
971k
    {
1634
971k
        return std::move(value());
1635
971k
    }
scn::v3::impl::parse_integer_prefix_result<wchar_t const*>&& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::impl::eof_error>::operator*<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, (void*)0>() &&
Line
Count
Source
1633
379k
    {
1634
379k
        return std::move(value());
1635
379k
    }
scn::v3::impl::parse_integer_prefix_result<wchar_t const*>&& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::scan_error>::operator*<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, (void*)0>() &&
Line
Count
Source
1633
379k
    {
1634
379k
        return std::move(value());
1635
379k
    }
std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&& scn::v3::expected<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::operator*<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, (void*)0>() &&
Line
Count
Source
1633
724
    {
1634
724
        return std::move(value());
1635
724
    }
Unexecuted instantiation: std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>&& scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::scan_error>::operator*<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, (void*)0>() &&
std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>&& scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::scan_error>::operator*<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, (void*)0>() &&
Line
Count
Source
1633
277k
    {
1634
277k
        return std::move(value());
1635
277k
    }
Unexecuted instantiation: std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>&& scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::scan_error>::operator*<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, (void*)0>() &&
std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>&& scn::v3::expected<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::scan_error>::operator*<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, (void*)0>() &&
Line
Count
Source
1633
287k
    {
1634
287k
        return std::move(value());
1635
287k
    }
char const*&& scn::v3::expected<char const*, scn::v3::impl::parse_error>::operator*<char const*, (void*)0>() &&
Line
Count
Source
1633
1.92k
    {
1634
1.92k
        return std::move(value());
1635
1.92k
    }
scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>&& scn::v3::expected<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, scn::v3::scan_error>::operator*<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, (void*)0>() &&
Line
Count
Source
1633
441k
    {
1634
441k
        return std::move(value());
1635
441k
    }
scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >&& scn::v3::expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, scn::v3::scan_error>::operator*<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, (void*)0>() &&
Line
Count
Source
1633
394k
    {
1634
394k
        return std::move(value());
1635
394k
    }
scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>&& scn::v3::expected<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, scn::v3::scan_error>::operator*<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, (void*)0>() &&
Line
Count
Source
1633
7.84M
    {
1634
7.84M
        return std::move(value());
1635
7.84M
    }
scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >&& scn::v3::expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, scn::v3::scan_error>::operator*<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, (void*)0>() &&
Line
Count
Source
1633
3.92M
    {
1634
3.92M
        return std::move(value());
1635
3.92M
    }
1636
    template <typename U = T, std::enable_if_t<!std::is_void_v<U>>* = nullptr>
1637
    constexpr const U&& operator*() const&& noexcept
1638
    {
1639
        return std::move(value());
1640
    }
1641
1642
    constexpr value_type* operator->() noexcept
1643
68.2M
    {
1644
68.2M
        return &value();
1645
68.2M
    }
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator->()
scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator->()
Line
Count
Source
1643
243k
    {
1644
243k
        return &value();
1645
243k
    }
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator->()
scn::v3::expected<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator->()
Line
Count
Source
1643
78.4k
    {
1644
78.4k
        return &value();
1645
78.4k
    }
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator->()
scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator->()
Line
Count
Source
1643
2.29k
    {
1644
2.29k
        return &value();
1645
2.29k
    }
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator->()
scn::v3::expected<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator->()
Line
Count
Source
1643
950
    {
1644
950
        return &value();
1645
950
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, signed char>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
296k
    {
1644
296k
        return &value();
1645
296k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned char>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
283k
    {
1644
283k
        return &value();
1645
283k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, int>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
382k
    {
1644
382k
        return &value();
1645
382k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
324k
    {
1644
324k
        return &value();
1645
324k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long long>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
390k
    {
1644
390k
        return &value();
1645
390k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned long long>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
328k
    {
1644
328k
        return &value();
1645
328k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, signed char>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
298k
    {
1644
298k
        return &value();
1645
298k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned char>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
285k
    {
1644
285k
        return &value();
1645
285k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, int>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
383k
    {
1644
383k
        return &value();
1645
383k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned int>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
326k
    {
1644
326k
        return &value();
1645
326k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long long>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
390k
    {
1644
390k
        return &value();
1645
390k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned long long>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
330k
    {
1644
330k
        return &value();
1645
330k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, signed char>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
595
    {
1644
595
        return &value();
1645
595
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned char>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
500
    {
1644
500
        return &value();
1645
500
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
711
    {
1644
711
        return &value();
1645
711
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
564
    {
1644
564
        return &value();
1645
564
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long long>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
864
    {
1644
864
        return &value();
1645
864
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned long long>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
694
    {
1644
694
        return &value();
1645
694
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, signed char>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
595
    {
1644
595
        return &value();
1645
595
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned char>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
500
    {
1644
500
        return &value();
1645
500
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, int>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
711
    {
1644
711
        return &value();
1645
711
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned int>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
564
    {
1644
564
        return &value();
1645
564
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long long>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
864
    {
1644
864
        return &value();
1645
864
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned long long>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
694
    {
1644
694
        return &value();
1645
694
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
151k
    {
1644
151k
        return &value();
1645
151k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
151k
    {
1644
151k
        return &value();
1645
151k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
152k
    {
1644
152k
        return &value();
1645
152k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
19.6M
    {
1644
19.6M
        return &value();
1645
19.6M
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
19.6M
    {
1644
19.6M
        return &value();
1645
19.6M
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
19.6M
    {
1644
19.6M
        return &value();
1645
19.6M
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, float>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
707k
    {
1644
707k
        return &value();
1645
707k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, double>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
768k
    {
1644
768k
        return &value();
1645
768k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long double>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
779k
    {
1644
779k
        return &value();
1645
779k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, float>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
706k
    {
1644
706k
        return &value();
1645
706k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, double>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
766k
    {
1644
766k
        return &value();
1645
766k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long double>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
776k
    {
1644
776k
        return &value();
1645
776k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, float>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
15.5k
    {
1644
15.5k
        return &value();
1645
15.5k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
15.6k
    {
1644
15.6k
        return &value();
1645
15.6k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long double>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
15.8k
    {
1644
15.8k
        return &value();
1645
15.8k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, float>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
15.5k
    {
1644
15.5k
        return &value();
1645
15.5k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, double>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
15.6k
    {
1644
15.6k
        return &value();
1645
15.6k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long double>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
15.8k
    {
1644
15.8k
        return &value();
1645
15.8k
    }
1646
    constexpr const value_type* operator->() const noexcept
1647
    {
1648
        return &value();
1649
    }
1650
1651
    /// Returns the expected value if *this contains one, otherwise
1652
    /// returns default_value
1653
    template <typename U,
1654
              typename = std::enable_if_t<std::is_copy_constructible_v<T> &&
1655
                                          std::is_convertible_v<U, T>>>
1656
    constexpr T value_or(U&& default_value) const& noexcept(
1657
        std::is_nothrow_copy_constructible_v<T> &&
1658
        std::is_nothrow_constructible_v<T, U&&>)
1659
    {
1660
        if (has_value()) {
1661
            return value();
1662
        }
1663
        return std::forward<U>(default_value);
1664
    }
1665
    template <typename U,
1666
              typename = std::enable_if_t<std::is_move_constructible_v<T> &&
1667
                                          std::is_convertible_v<U, T>>>
1668
    constexpr T value_or(U&& default_value) && noexcept(
1669
        std::is_nothrow_move_constructible_v<T> &&
1670
        std::is_nothrow_constructible_v<T, U&&>)
1671
    {
1672
        if (has_value()) {
1673
            return std::move(value());
1674
        }
1675
        return std::forward<U>(default_value);
1676
    }
1677
1678
    template <typename G,
1679
              typename = std::enable_if_t<std::is_copy_constructible_v<E> &&
1680
                                          std::is_convertible_v<G, E>>>
1681
    constexpr E error_or(G&& default_error) const& noexcept(
1682
        std::is_nothrow_copy_constructible_v<E> &&
1683
        std::is_nothrow_constructible_v<E, G&&>)
1684
    {
1685
        if (!has_value()) {
1686
            return error();
1687
        }
1688
        return std::forward<G>(default_error);
1689
    }
1690
    template <typename G,
1691
              typename = std::enable_if_t<std::is_move_constructible_v<E> &&
1692
                                          std::is_convertible_v<G, E>>>
1693
    constexpr E error_or(G&& default_error) && noexcept(
1694
        std::is_nothrow_move_constructible_v<E> &&
1695
        std::is_nothrow_constructible_v<E, G&&>)
1696
    {
1697
        if (!has_value()) {
1698
            return std::move(error());
1699
        }
1700
        return std::forward<G>(default_error);
1701
    }
1702
1703
    template <typename F>
1704
    constexpr auto and_then(F&& f) & noexcept(noexcept(
1705
        detail::and_then_impl(SCN_DECLVAL(expected&), std::forward<F>(f))))
1706
        -> decltype(detail::and_then_impl(*this, std::forward<F>(f)))
1707
    {
1708
        return detail::and_then_impl(*this, std::forward<F>(f));
1709
    }
1710
    template <typename F>
1711
    constexpr auto and_then(F&& f) const& noexcept(
1712
        noexcept(detail::and_then_impl(SCN_DECLVAL(const expected&),
1713
                                       std::forward<F>(f))))
1714
        -> decltype(detail::and_then_impl(*this, std::forward<F>(f)))
1715
    {
1716
        return detail::and_then_impl(*this, std::forward<F>(f));
1717
    }
1718
    template <typename F>
1719
    constexpr auto and_then(F&& f) && noexcept(noexcept(
1720
        detail::and_then_impl(SCN_DECLVAL(expected&&), std::forward<F>(f))))
1721
        -> decltype(detail::and_then_impl(*this, std::forward<F>(f)))
1722
    {
1723
        return detail::and_then_impl(std::move(*this), std::forward<F>(f));
1724
    }
1725
    template <typename F>
1726
    constexpr auto and_then(F&& f) const&& noexcept(
1727
        noexcept(detail::and_then_impl(SCN_DECLVAL(const expected&&),
1728
                                       std::forward<F>(f))))
1729
        -> decltype(detail::and_then_impl(*this, std::forward<F>(f)))
1730
    {
1731
        return detail::and_then_impl(std::move(*this), std::forward<F>(f));
1732
    }
1733
1734
    template <typename F>
1735
    constexpr auto or_else(F&& f) & noexcept(noexcept(
1736
        detail::or_else_impl(SCN_DECLVAL(expected&), std::forward<F>(f))))
1737
        -> decltype(detail::or_else_impl(*this, std::forward<F>(f)))
1738
    {
1739
        return detail::or_else_impl(*this, std::forward<F>(f));
1740
    }
1741
    template <typename F>
1742
    constexpr auto or_else(F&& f) const& noexcept(noexcept(
1743
        detail::or_else_impl(SCN_DECLVAL(const expected&), std::forward<F>(f))))
1744
        -> decltype(detail::or_else_impl(*this, std::forward<F>(f)))
1745
    {
1746
        return detail::or_else_impl(*this, std::forward<F>(f));
1747
    }
1748
    template <typename F>
1749
    constexpr auto or_else(F&& f) && noexcept(noexcept(
1750
        detail::or_else_impl(SCN_DECLVAL(expected&&), std::forward<F>(f))))
1751
        -> decltype(detail::or_else_impl(*this, std::forward<F>(f)))
1752
    {
1753
        return detail::or_else_impl(std::move(*this), std::forward<F>(f));
1754
    }
1755
    template <typename F>
1756
    constexpr auto or_else(F&& f) const&& noexcept(
1757
        noexcept(detail::or_else_impl(SCN_DECLVAL(const expected&&),
1758
                                      std::forward<F>(f))))
1759
        -> decltype(detail::or_else_impl(*this, std::forward<F>(f)))
1760
    {
1761
        return detail::or_else_impl(std::move(*this), std::forward<F>(f));
1762
    }
1763
1764
    template <typename F>
1765
    constexpr auto transform(
1766
        F&& f) & -> decltype(detail::transform_impl(*this, std::forward<F>(f)))
1767
    {
1768
        return detail::transform_impl(*this, std::forward<F>(f));
1769
    }
1770
    template <typename F>
1771
    constexpr auto transform(F&& f)
1772
        const& -> decltype(detail::transform_impl(*this, std::forward<F>(f)))
1773
    {
1774
        return detail::transform_impl(*this, std::forward<F>(f));
1775
    }
1776
    template <typename F>
1777
    constexpr auto transform(
1778
        F&& f) && -> decltype(detail::transform_impl(*this, std::forward<F>(f)))
1779
    {
1780
        return detail::transform_impl(std::move(*this), std::forward<F>(f));
1781
    }
1782
    template <typename F>
1783
    constexpr auto transform(F&& f)
1784
        const&& -> decltype(detail::transform_impl(*this, std::forward<F>(f)))
1785
    {
1786
        return detail::transform_impl(std::move(*this), std::forward<F>(f));
1787
    }
1788
1789
    template <typename F>
1790
    constexpr auto transform_error(
1791
        F&& f) & -> decltype(detail::transform_error_impl(*this,
1792
                                                          std::forward<F>(f)))
1793
5.41M
    {
1794
5.41M
        return detail::transform_error_impl(*this, std::forward<F>(f));
1795
5.41M
    }
Unexecuted instantiation: _ZNR3scn2v38expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_11parse_errorEE15transform_errorIZNS2_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlSC_E_EEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSK_
_ZNR3scn2v38expectedINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl11parse_errorEE15transform_errorIZNS6_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlS7_E_EEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSF_
Line
Count
Source
1793
2.26M
    {
1794
2.26M
        return detail::transform_error_impl(*this, std::forward<F>(f));
1795
2.26M
    }
_ZNR3scn2v38expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS6_EENS2_11parse_errorEE15transform_errorIZNS2_29map_parse_error_to_scan_errorENS0_10scan_error4codeES6_EUlS8_E_EEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSE_
Line
Count
Source
1793
728
    {
1794
728
        return detail::transform_error_impl(*this, std::forward<F>(f));
1795
728
    }
_ZNR3scn2v38expectedIPKcNS0_4impl11parse_errorEE15transform_errorIZNS4_29map_parse_error_to_scan_errorENS0_10scan_error4codeES3_EUlS5_E_EEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSB_
Line
Count
Source
1793
2.24M
    {
1794
2.24M
        return detail::transform_error_impl(*this, std::forward<F>(f));
1795
2.24M
    }
Unexecuted instantiation: _ZNR3scn2v38expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_11parse_errorEE15transform_errorIZNS2_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlSC_E_EEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSK_
_ZNR3scn2v38expectedINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl11parse_errorEE15transform_errorIZNS6_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlS7_E_EEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSF_
Line
Count
Source
1793
506k
    {
1794
506k
        return detail::transform_error_impl(*this, std::forward<F>(f));
1795
506k
    }
Unexecuted instantiation: _ZNR3scn2v38expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS6_EENS2_11parse_errorEE15transform_errorIZNS2_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlS8_E_EEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSG_
_ZNR3scn2v38expectedIPKwNS0_4impl11parse_errorEE15transform_errorIZNS4_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlS5_E_EEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSD_
Line
Count
Source
1793
392k
    {
1794
392k
        return detail::transform_error_impl(*this, std::forward<F>(f));
1795
392k
    }
1796
    template <typename F>
1797
    constexpr auto transform_error(F&& f)
1798
        const& -> decltype(detail::transform_error_impl(*this,
1799
                                                        std::forward<F>(f)))
1800
    {
1801
        return detail::transform_error_impl(*this, std::forward<F>(f));
1802
    }
1803
    template <typename F>
1804
    constexpr auto transform_error(
1805
        F&& f) && -> decltype(detail::transform_error_impl(*this,
1806
                                                           std::forward<F>(f)))
1807
92.2M
    {
1808
92.2M
        return detail::transform_error_impl(std::move(*this),
1809
92.2M
                                            std::forward<F>(f));
1810
92.2M
    }
_ZNO3scn2v38expectedINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl9eof_errorEE15transform_errorIRFNS0_10scan_errorES7_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSD_
Line
Count
Source
1807
4.71M
    {
1808
4.71M
        return detail::transform_error_impl(std::move(*this),
1809
4.71M
                                            std::forward<F>(f));
1810
4.71M
    }
_ZNO3scn2v38expectedINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl9eof_errorEE15transform_errorIRFNS0_10scan_errorES7_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSD_
Line
Count
Source
1807
20.2M
    {
1808
20.2M
        return detail::transform_error_impl(std::move(*this),
1809
20.2M
                                            std::forward<F>(f));
1810
20.2M
    }
_ZNO3scn2v38expectedIPKcNS0_4impl9eof_errorEE15transform_errorIRFNS0_10scan_errorES5_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSB_
Line
Count
Source
1807
4.87M
    {
1808
4.87M
        return detail::transform_error_impl(std::move(*this),
1809
4.87M
                                            std::forward<F>(f));
1810
4.87M
    }
Unexecuted instantiation: _ZNO3scn2v38expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorESC_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSI_
Unexecuted instantiation: _ZNO3scn2v38expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_9eof_errorEE15transform_errorIRFNS2_11parse_errorESC_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSI_
Unexecuted instantiation: _ZNO3scn2v38expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorESE_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSK_
Unexecuted instantiation: _ZNO3scn2v38expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_11parse_errorEE15transform_errorIZNS2_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlSC_E_EEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSK_
_ZNO3scn2v38expectedINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl9eof_errorEE15transform_errorIRFNS6_11parse_errorES7_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSD_
Line
Count
Source
1807
8.15M
    {
1808
8.15M
        return detail::transform_error_impl(std::move(*this),
1809
8.15M
                                            std::forward<F>(f));
1810
8.15M
    }
_ZNO3scn2v38expectedINS0_4impl27parse_integer_prefix_resultINS0_6detail17basic_scan_bufferIcE16forward_iteratorEEENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorES9_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSF_
Line
Count
Source
1807
2.16M
    {
1808
2.16M
        return detail::transform_error_impl(std::move(*this),
1809
2.16M
                                            std::forward<F>(f));
1810
2.16M
    }
_ZNO3scn2v38expectedINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl11parse_errorEE15transform_errorIZNS6_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlS7_E_EEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSF_
Line
Count
Source
1807
1.64M
    {
1808
1.64M
        return detail::transform_error_impl(std::move(*this),
1809
1.64M
                                            std::forward<F>(f));
1810
1.64M
    }
_ZNO3scn2v38expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS6_EENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorES8_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSE_
Line
Count
Source
1807
3.55k
    {
1808
3.55k
        return detail::transform_error_impl(std::move(*this),
1809
3.55k
                                            std::forward<F>(f));
1810
3.55k
    }
_ZNO3scn2v38expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS6_EENS2_9eof_errorEE15transform_errorIRFNS2_11parse_errorES8_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSE_
Line
Count
Source
1807
2.30k
    {
1808
2.30k
        return detail::transform_error_impl(std::move(*this),
1809
2.30k
                                            std::forward<F>(f));
1810
2.30k
    }
_ZNO3scn2v38expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorIPKcS7_EEEENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorESA_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSG_
Line
Count
Source
1807
1.14k
    {
1808
1.14k
        return detail::transform_error_impl(std::move(*this),
1809
1.14k
                                            std::forward<F>(f));
1810
1.14k
    }
_ZNO3scn2v38expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS6_EENS2_11parse_errorEE15transform_errorIZNS2_29map_parse_error_to_scan_errorENS0_10scan_error4codeES6_EUlS8_E_EEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSE_
Line
Count
Source
1807
1.13k
    {
1808
1.13k
        return detail::transform_error_impl(std::move(*this),
1809
1.13k
                                            std::forward<F>(f));
1810
1.13k
    }
_ZNO3scn2v38expectedINS0_4impl27parse_integer_prefix_resultIPKcEENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorES7_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSD_
Line
Count
Source
1807
2.16M
    {
1808
2.16M
        return detail::transform_error_impl(std::move(*this),
1809
2.16M
                                            std::forward<F>(f));
1810
2.16M
    }
Unexecuted instantiation: _ZNO3scn2v38expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9sign_typeEEENS4_9eof_errorEE15transform_errorIRFNS0_10scan_errorESG_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSM_
_ZNO3scn2v38expectedINSt3__14pairINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl9sign_typeEEENS8_9eof_errorEE15transform_errorIRFNS0_10scan_errorESB_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSH_
Line
Count
Source
1807
2.33M
    {
1808
2.33M
        return detail::transform_error_impl(std::move(*this),
1809
2.33M
                                            std::forward<F>(f));
1810
2.33M
    }
_ZNO3scn2v38expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EENS4_9sign_typeEEENS4_9eof_errorEE15transform_errorIRFNS0_10scan_errorESC_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSI_
Line
Count
Source
1807
364
    {
1808
364
        return detail::transform_error_impl(std::move(*this),
1809
364
                                            std::forward<F>(f));
1810
364
    }
_ZNO3scn2v38expectedINSt3__14pairIPKcNS0_4impl9sign_typeEEENS6_9eof_errorEE15transform_errorIRFNS0_10scan_errorES9_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSF_
Line
Count
Source
1807
2.34M
    {
1808
2.34M
        return detail::transform_error_impl(std::move(*this),
1809
2.34M
                                            std::forward<F>(f));
1810
2.34M
    }
Unexecuted instantiation: _ZNO3scn2v38expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorESC_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSI_
Unexecuted instantiation: _ZNO3scn2v38expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_9eof_errorEE15transform_errorIRFNS2_11parse_errorESC_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSI_
Unexecuted instantiation: _ZNO3scn2v38expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorESE_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSK_
Unexecuted instantiation: _ZNO3scn2v38expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_11parse_errorEE15transform_errorIZNS2_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlSC_E_EEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSK_
_ZNO3scn2v38expectedINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl9eof_errorEE15transform_errorIRFNS6_11parse_errorES7_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSD_
Line
Count
Source
1807
990k
    {
1808
990k
        return detail::transform_error_impl(std::move(*this),
1809
990k
                                            std::forward<F>(f));
1810
990k
    }
_ZNO3scn2v38expectedINS0_4impl27parse_integer_prefix_resultINS0_6detail17basic_scan_bufferIwE16forward_iteratorEEENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorES9_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSF_
Line
Count
Source
1807
351k
    {
1808
351k
        return detail::transform_error_impl(std::move(*this),
1809
351k
                                            std::forward<F>(f));
1810
351k
    }
_ZNO3scn2v38expectedINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl11parse_errorEE15transform_errorIZNS6_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlS7_E_EEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSF_
Line
Count
Source
1807
303k
    {
1808
303k
        return detail::transform_error_impl(std::move(*this),
1809
303k
                                            std::forward<F>(f));
1810
303k
    }
Unexecuted instantiation: _ZNO3scn2v38expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS6_EENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorES8_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSE_
_ZNO3scn2v38expectedIPKwNS0_4impl9eof_errorEE15transform_errorIRFNS0_10scan_errorES5_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSB_
Line
Count
Source
1807
39.9M
    {
1808
39.9M
        return detail::transform_error_impl(std::move(*this),
1809
39.9M
                                            std::forward<F>(f));
1810
39.9M
    }
Unexecuted instantiation: _ZNO3scn2v38expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS6_EENS2_9eof_errorEE15transform_errorIRFNS2_11parse_errorES8_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSE_
Unexecuted instantiation: _ZNO3scn2v38expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorIPKwS7_EEEENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorESA_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSG_
Unexecuted instantiation: _ZNO3scn2v38expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS6_EENS2_11parse_errorEE15transform_errorIZNS2_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlS8_E_EEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSG_
_ZNO3scn2v38expectedIPKwNS0_4impl9eof_errorEE15transform_errorIRFNS4_11parse_errorES5_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSB_
Line
Count
Source
1807
1.04M
    {
1808
1.04M
        return detail::transform_error_impl(std::move(*this),
1809
1.04M
                                            std::forward<F>(f));
1810
1.04M
    }
_ZNO3scn2v38expectedINS0_4impl27parse_integer_prefix_resultIPKwEENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorES7_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSD_
Line
Count
Source
1807
379k
    {
1808
379k
        return detail::transform_error_impl(std::move(*this),
1809
379k
                                            std::forward<F>(f));
1810
379k
    }
Unexecuted instantiation: _ZNO3scn2v38expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9sign_typeEEENS4_9eof_errorEE15transform_errorIRFNS0_10scan_errorESG_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSM_
_ZNO3scn2v38expectedINSt3__14pairINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl9sign_typeEEENS8_9eof_errorEE15transform_errorIRFNS0_10scan_errorESB_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSH_
Line
Count
Source
1807
277k
    {
1808
277k
        return detail::transform_error_impl(std::move(*this),
1809
277k
                                            std::forward<F>(f));
1810
277k
    }
Unexecuted instantiation: _ZNO3scn2v38expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EENS4_9sign_typeEEENS4_9eof_errorEE15transform_errorIRFNS0_10scan_errorESC_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSI_
_ZNO3scn2v38expectedINSt3__14pairIPKwNS0_4impl9sign_typeEEENS6_9eof_errorEE15transform_errorIRFNS0_10scan_errorES9_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSF_
Line
Count
Source
1807
287k
    {
1808
287k
        return detail::transform_error_impl(std::move(*this),
1809
287k
                                            std::forward<F>(f));
1810
287k
    }
_ZNO3scn2v38expectedIPKcNS0_4impl9eof_errorEE15transform_errorIRFNS4_11parse_errorES5_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSB_
Line
Count
Source
1807
2.03k
    {
1808
2.03k
        return detail::transform_error_impl(std::move(*this),
1809
2.03k
                                            std::forward<F>(f));
1810
2.03k
    }
1811
    template <typename F>
1812
    constexpr auto transform_error(F&& f)
1813
        const&& -> decltype(detail::transform_error_impl(*this,
1814
                                                         std::forward<F>(f)))
1815
    {
1816
        return detail::transform_error_impl(std::move(*this),
1817
                                            std::forward<F>(f));
1818
    }
1819
1820
private:
1821
    template <typename... Args>
1822
    void emplace_impl(Args&&... args) noexcept(
1823
        std::is_nothrow_constructible_v<T, Args&&...>)
1824
    {
1825
        if (this->has_value()) {
1826
            this->destroy_value();
1827
            this->construct(std::forward<Args>(args)...);
1828
        }
1829
        else {
1830
#if SCN_HAS_EXCEPTIONS
1831
            if constexpr (std::is_nothrow_constructible_v<T, Args&&...>) {
1832
                auto tmp = std::move(error());
1833
                this->destroy_unexpected();
1834
1835
                try {
1836
                    this->construct(std::forward<Args>(args)...);
1837
                }
1838
                catch (...) {
1839
                    this->construct_unexpected(std::move(tmp));
1840
                    throw;
1841
                }
1842
            }
1843
            else {
1844
                this->construct(std::forward<Args>(args)...);
1845
            }
1846
#else
1847
            this->destroy_unexpected();
1848
            this->construct(std::forward<Args>(args)...);
1849
#endif
1850
        }
1851
    }
1852
1853
    template <typename Value>
1854
    void assign_value(Value&& val) noexcept(
1855
        std::is_nothrow_constructible_v<detail::remove_cvref_t<Value>,
1856
                                        Value&&> &&
1857
        std::is_nothrow_assignable_v<T, Value&&>)
1858
    {
1859
        if (has_value()) {
1860
            this->get_value() = std::forward<Value>(val);
1861
            return;
1862
        }
1863
1864
#if SCN_HAS_EXCEPTIONS
1865
        if constexpr (std::is_nothrow_constructible_v<T, Value&&>) {
1866
            this->destroy_unexpected();
1867
            this->construct(std::forward<Value>(val));
1868
        }
1869
        else {
1870
            auto tmp = std::move(this->get_unexpected());
1871
            this->destroy_unexpected();
1872
1873
            try {
1874
                this->construct(std::forward<Value>(val));
1875
            }
1876
            catch (...) {
1877
                this->construct_unexpected(std::move(tmp));
1878
            }
1879
        }
1880
#else
1881
        this->destroy_unexpected();
1882
        this->construct(std::forward<Value>(val));
1883
#endif
1884
    }
1885
1886
    template <typename Unexpected>
1887
    void assign_unexpected(Unexpected&& unex) noexcept(
1888
        std::is_nothrow_constructible_v<E, Unexpected&&> &&
1889
        std::is_nothrow_assignable_v<E, Unexpected&&>)
1890
    {
1891
        if (!has_value()) {
1892
            this->get_unexpected() = std::forward<Unexpected>(unex);
1893
            return;
1894
        }
1895
1896
        this->destroy_value();
1897
        this->construct_unexpected(std::forward<Unexpected>(unex));
1898
    }
1899
};
1900
1901
/////////////////////////////////////////////////////////////////
1902
// <ranges> implementation
1903
/////////////////////////////////////////////////////////////////
1904
1905
// The following is a very minimal <ranges> implementation,
1906
// which is a heavily stripped-down and adapted version of NanoRange:
1907
//   https://github.com/tcbrindle/NanoRange
1908
// NanoRange is provided under the Boost license.
1909
//   Copyright (c) 2018 Tristan Brindle (tcbrindle at gmail dot com)
1910
1911
namespace ranges {
1912
1913
namespace detail {
1914
using namespace scn::detail;
1915
1916
template <typename T>
1917
constexpr auto decay_copy(T&& t) noexcept(
1918
    noexcept(static_cast<std::decay_t<T>>(SCN_FWD(t)))) -> std::decay_t<T>
1919
824M
{
1920
824M
    return SCN_FWD(t);
1921
824M
}
_ZN3scn2v36ranges6detail10decay_copyIPKcEEu7__decayIT_EOS6_
Line
Count
Source
1919
42.0M
{
1920
42.0M
    return SCN_FWD(t);
1921
42.0M
}
_ZN3scn2v36ranges6detail10decay_copyIPKwEEu7__decayIT_EOS6_
Line
Count
Source
1919
238M
{
1920
238M
    return SCN_FWD(t);
1921
238M
}
_ZN3scn2v36ranges6detail10decay_copyImEEu7__decayIT_EOS4_
Line
Count
Source
1919
50.1M
{
1920
50.1M
    return SCN_FWD(t);
1921
50.1M
}
Unexecuted instantiation: _ZN3scn2v36ranges6detail10decay_copyINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS1_18default_sentinel_tEEEEEu7__decayIT_EOSD_
_ZN3scn2v36ranges6detail10decay_copyINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EEEEu7__decayIT_EOSA_
Line
Count
Source
1919
4.40k
{
1920
4.40k
    return SCN_FWD(t);
1921
4.40k
}
_ZN3scn2v36ranges6detail10decay_copyINS0_6detail17basic_scan_bufferIcE16forward_iteratorEEEu7__decayIT_EOS8_
Line
Count
Source
1919
1.63M
{
1920
1.63M
    return SCN_FWD(t);
1921
1.63M
}
Unexecuted instantiation: _ZN3scn2v36ranges6detail10decay_copyINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS1_18default_sentinel_tEEEEEu7__decayIT_EOSD_
Unexecuted instantiation: _ZN3scn2v36ranges6detail10decay_copyINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EEEEu7__decayIT_EOSA_
_ZN3scn2v36ranges6detail10decay_copyINS0_6detail17basic_scan_bufferIwE16forward_iteratorEEEu7__decayIT_EOS8_
Line
Count
Source
1919
233k
{
1920
233k
    return SCN_FWD(t);
1921
233k
}
_ZN3scn2v36ranges6detail10decay_copyINSt3__116__deque_iteratorIcPKcRS6_PKS7_lLl4096EEEEEu7__decayIT_EOSC_
Line
Count
Source
1919
67.6M
{
1920
67.6M
    return SCN_FWD(t);
1921
67.6M
}
_ZN3scn2v36ranges6detail10decay_copyINSt3__116__deque_iteratorIwPKwRS6_PKS7_lLl1024EEEEEu7__decayIT_EOSC_
Line
Count
Source
1919
424M
{
1920
424M
    return SCN_FWD(t);
1921
424M
}
1922
1923
template <bool>
1924
struct conditional {
1925
    template <typename T, typename>
1926
    using type = T;
1927
};
1928
1929
template <>
1930
struct conditional<false> {
1931
    template <typename, typename U>
1932
    using type = U;
1933
};
1934
1935
template <bool B, typename T, typename U>
1936
using conditional_t = typename conditional<B>::template type<T, U>;
1937
1938
template <template <class...> class AliasT, typename... Args>
1939
auto exists_helper(long) -> std::false_type;
1940
1941
template <template <class...> class AliasT,
1942
          typename... Args,
1943
          typename = AliasT<Args...>>
1944
auto exists_helper(int) -> std::true_type;
1945
1946
template <template <class...> class AliasT, typename... Args>
1947
inline constexpr bool exists_v =
1948
    decltype(exists_helper<AliasT, Args...>(0))::value;
1949
1950
template <typename, typename...>
1951
auto test_requires_fn(long) -> std::false_type;
1952
1953
template <typename R,
1954
          typename... Args,
1955
          typename = decltype(&R::template requires_<Args...>)>
1956
auto test_requires_fn(int) -> std::true_type;
1957
1958
template <typename R, typename... Args>
1959
inline constexpr bool requires_ =
1960
    decltype(test_requires_fn<R, Args...>(0))::value;
1961
1962
template <bool Expr>
1963
using requires_expr = std::enable_if_t<Expr, int>;
1964
}  // namespace detail
1965
1966
template <typename>
1967
inline constexpr bool enable_borrowed_range = false;
1968
1969
namespace detail {
1970
template <typename T>
1971
inline constexpr bool boolean_testable_impl = std::is_convertible_v<T, bool>;
1972
1973
struct boolean_testable_concept {
1974
    template <typename T>
1975
    auto requires_(T&& t)
1976
        -> requires_expr<boolean_testable_impl<decltype(!std::forward<T>(t))>>;
1977
};
1978
1979
template <typename T>
1980
inline constexpr bool boolean_testable =
1981
    boolean_testable_impl<T> && detail::requires_<boolean_testable_concept, T>;
1982
}  // namespace detail
1983
1984
namespace detail {
1985
struct weakly_equality_comparable_with_concept {
1986
    template <typename T, typename U>
1987
    auto requires_(const std::remove_reference_t<T>& t,
1988
                   const std::remove_reference_t<U>& u)
1989
        -> decltype(requires_expr<boolean_testable<decltype(t == u)>>{},
1990
                    requires_expr<boolean_testable<decltype(t != u)>>{},
1991
                    requires_expr<boolean_testable<decltype(u == t)>>{},
1992
                    requires_expr<boolean_testable<decltype(u != t)>>{});
1993
};
1994
1995
template <typename T, typename U>
1996
inline constexpr bool weakly_equality_comparable_with =
1997
    requires_<weakly_equality_comparable_with_concept, T, U>;
1998
}  // namespace detail
1999
2000
template <typename T>
2001
inline constexpr bool equality_comparable =
2002
    detail::weakly_equality_comparable_with<T, T>;
2003
2004
namespace detail {
2005
struct equality_comparable_with_concept {
2006
    template <typename, typename>
2007
    static auto test(long) -> std::false_type;
2008
2009
    template <typename T, typename U>
2010
    static auto test(int)
2011
        -> std::enable_if_t<equality_comparable<T> && equality_comparable<U> &&
2012
#if 0
2013
            common_reference_with<const std::remove_reference_t<T>&,
2014
                                  const std::remove_reference_t<U>&> &&
2015
            equality_comparable<
2016
                common_reference_t<const std::remove_reference_t<T>&,
2017
                                   const std::remove_reference_t<U>&>> &&
2018
#endif
2019
                                weakly_equality_comparable_with<T, U>,
2020
                            std::true_type>;
2021
};
2022
}  // namespace detail
2023
2024
template <typename T, typename U>
2025
inline constexpr bool equality_comparable_with =
2026
    decltype(detail::equality_comparable_with_concept::test<T, U>(0))::value;
2027
2028
namespace detail {
2029
struct partially_ordered_with_concept {
2030
    template <typename T, typename U>
2031
    auto requires_(const std::remove_reference_t<T>& t,
2032
                   const std::remove_reference_t<U>& u)
2033
        -> decltype(requires_expr<boolean_testable<decltype(t < u)>>{},
2034
                    requires_expr<boolean_testable<decltype(t > u)>>{},
2035
                    requires_expr<boolean_testable<decltype(t <= u)>>{},
2036
                    requires_expr<boolean_testable<decltype(t >= u)>>{},
2037
                    requires_expr<boolean_testable<decltype(u < t)>>{},
2038
                    requires_expr<boolean_testable<decltype(u > t)>>{},
2039
                    requires_expr<boolean_testable<decltype(u <= t)>>{},
2040
                    requires_expr<boolean_testable<decltype(u >= t)>>{});
2041
};
2042
2043
template <typename T, typename U>
2044
inline constexpr bool partially_ordered_with =
2045
    detail::requires_<detail::partially_ordered_with_concept, T, U>;
2046
}  // namespace detail
2047
2048
template <typename T>
2049
inline constexpr bool totally_ordered =
2050
    equality_comparable<T> && detail::partially_ordered_with<T, T>;
2051
2052
namespace detail {
2053
struct totally_ordered_with_concept {
2054
    template <typename, typename>
2055
    static auto test(long) -> std::false_type;
2056
2057
    template <typename T, typename U>
2058
    static auto test(int)
2059
        -> std::enable_if_t<totally_ordered<T> && totally_ordered<U> &&
2060
                                equality_comparable_with<T, U> &&
2061
#if 0
2062
                                totally_ordered<common_reference_t<
2063
                                    const std::remove_reference_t<T>&,
2064
                                    const std::remove_reference_t<U>&>> &&
2065
#endif
2066
                                partially_ordered_with<T, U>,
2067
                            std::true_type>;
2068
};
2069
}  // namespace detail
2070
2071
template <typename T, typename U>
2072
inline constexpr bool totally_ordered_with =
2073
    decltype(detail::totally_ordered_with_concept::test<T, U>(0))::value;
2074
2075
namespace detail {
2076
struct movable_concept {
2077
    template <typename T>
2078
    static auto test(long) -> std::false_type;
2079
2080
    template <typename T>
2081
    static auto test(int) -> std::enable_if_t<
2082
        std::is_object_v<T> && std::is_move_constructible_v<T> &&
2083
            std::is_move_assignable_v<T> && std::is_swappable_v<T>,
2084
        std::true_type>;
2085
};
2086
}  // namespace detail
2087
2088
template <typename T>
2089
inline constexpr bool movable =
2090
    decltype(detail::movable_concept::test<T>(0))::value;
2091
2092
namespace detail {
2093
struct copyable_concept {
2094
    template <typename>
2095
    static auto test(long) -> std::false_type;
2096
2097
    template <typename T>
2098
    static auto test(int)
2099
        -> std::enable_if_t<std::is_copy_constructible_v<T> && movable<T> &&
2100
                                std::is_copy_assignable_v<T>,
2101
                            std::true_type>;
2102
};
2103
}  // namespace detail
2104
2105
template <typename T>
2106
inline constexpr bool copyable =
2107
    decltype(detail::copyable_concept::test<T>(0))::value;
2108
2109
template <typename T>
2110
inline constexpr bool semiregular =
2111
    copyable<T> && std::is_default_constructible_v<T>;
2112
2113
template <typename T>
2114
inline constexpr bool regular = semiregular<T> && equality_comparable<T>;
2115
2116
template <typename>
2117
struct incrementable_traits;
2118
2119
namespace detail {
2120
struct empty {};
2121
2122
template <typename T>
2123
struct with_difference_type {
2124
    using difference_type = T;
2125
};
2126
2127
template <typename, typename = void>
2128
struct incrementable_traits_helper {};
2129
2130
// Workaround for GCC silliness: void* has no difference_type
2131
// FIXME: This is required to stop WeaklyIncrementable<void*> being a hard
2132
// error Can we formulate the concept differently to avoid the need for this
2133
// hack?
2134
template <>
2135
struct incrementable_traits_helper<void*> {};
2136
2137
template <typename T>
2138
struct incrementable_traits_helper<T*>
2139
    : detail::conditional_t<std::is_object_v<T>,
2140
                            with_difference_type<std::ptrdiff_t>,
2141
                            empty> {};
2142
2143
template <class I>
2144
struct incrementable_traits_helper<const I>
2145
    : incrementable_traits<std::decay_t<I>> {};
2146
2147
template <typename, typename = void>
2148
struct has_member_difference_type : std::false_type {};
2149
2150
template <typename T>
2151
struct has_member_difference_type<T, std::void_t<typename T::difference_type>>
2152
    : std::true_type {};
2153
2154
template <typename T>
2155
constexpr bool has_member_difference_type_v =
2156
    has_member_difference_type<T>::value;
2157
2158
template <typename T>
2159
struct incrementable_traits_helper<
2160
    T,
2161
    std::enable_if_t<has_member_difference_type_v<T>>> {
2162
    using difference_type = typename T::difference_type;
2163
};
2164
2165
template <typename T, typename = void>
2166
struct subtraction_result_type {
2167
    using type = void;
2168
};
2169
template <typename T>
2170
struct subtraction_result_type<
2171
    T,
2172
    std::void_t<decltype(std::declval<const T&>() -
2173
                         std::declval<const T&>())>> {
2174
    using type = decltype(std::declval<const T&>() - std::declval<const T&>());
2175
};
2176
2177
template <typename T>
2178
inline constexpr bool enable_incrtraits_subtractable =
2179
    !std::is_pointer_v<T> && !has_member_difference_type_v<T> &&
2180
    std::is_integral_v<typename subtraction_result_type<T>::type>;
2181
2182
template <typename T>
2183
struct incrementable_traits_helper<
2184
    T,
2185
    std::enable_if_t<enable_incrtraits_subtractable<T>>>
2186
    : with_difference_type<
2187
          std::make_signed_t<typename subtraction_result_type<T>::type>> {};
2188
}  // namespace detail
2189
2190
template <typename T>
2191
struct incrementable_traits : detail::incrementable_traits_helper<T> {};
2192
2193
template <typename T>
2194
using iter_difference_t = typename incrementable_traits<T>::difference_type;
2195
2196
template <typename>
2197
struct readable_traits;
2198
2199
namespace detail {
2200
template <typename T>
2201
struct with_value_type {
2202
    using value_type = T;
2203
};
2204
2205
template <typename, typename = void>
2206
struct readable_traits_helper {};
2207
2208
template <typename T>
2209
struct readable_traits_helper<T*>
2210
    : detail::conditional_t<std::is_object_v<T>,
2211
                            with_value_type<std::remove_cv_t<T>>,
2212
                            empty> {};
2213
2214
template <typename I>
2215
struct readable_traits_helper<I, std::enable_if_t<std::is_array_v<I>>>
2216
    : readable_traits<std::decay_t<I>> {};
2217
2218
template <typename I>
2219
struct readable_traits_helper<const I, std::enable_if_t<!std::is_array_v<I>>>
2220
    : readable_traits<std::decay_t<I>> {};
2221
2222
template <typename T, typename V = typename T::value_type>
2223
struct member_value_type
2224
    : detail::conditional_t<std::is_object_v<V>, with_value_type<V>, empty> {};
2225
2226
template <typename T, typename E = typename T::element_type>
2227
struct member_element_type
2228
    : detail::conditional_t<std::is_object_v<E>,
2229
                            with_value_type<std::remove_cv_t<E>>,
2230
                            empty> {};
2231
2232
template <typename T>
2233
using member_value_type_t = typename T::value_type;
2234
2235
template <typename T>
2236
constexpr bool has_member_value_type_v = exists_v<member_value_type_t, T>;
2237
2238
template <typename T>
2239
using member_element_type_t = typename T::element_type;
2240
2241
template <typename T>
2242
constexpr bool has_member_element_type_v = exists_v<member_element_type_t, T>;
2243
2244
template <typename T>
2245
struct readable_traits_helper<T,
2246
                              std::enable_if_t<has_member_value_type_v<T> &&
2247
                                               !has_member_element_type_v<T>>>
2248
    : member_value_type<T> {};
2249
2250
template <typename T>
2251
struct readable_traits_helper<T,
2252
                              std::enable_if_t<has_member_element_type_v<T> &&
2253
                                               !has_member_value_type_v<T>>>
2254
    : member_element_type<T> {};
2255
2256
// A type which has both value_type and element_type members must specialise
2257
// readable_traits to tell us which one to prefer -- see
2258
// https://github.com/ericniebler/stl2/issues/562
2259
template <typename T>
2260
struct readable_traits_helper<T,
2261
                              std::enable_if_t<has_member_element_type_v<T> &&
2262
                                               has_member_value_type_v<T>>> {};
2263
}  // namespace detail
2264
2265
template <typename T>
2266
struct readable_traits : detail::readable_traits_helper<T> {};
2267
2268
template <typename T>
2269
using iter_value_t = typename readable_traits<T>::value_type;
2270
2271
namespace detail {
2272
template <typename T>
2273
using with_reference = T&;
2274
2275
struct can_reference_concept {
2276
    template <typename T>
2277
    auto requires_() -> with_reference<T>;
2278
};
2279
2280
template <typename T>
2281
inline constexpr bool can_reference =
2282
    detail::requires_<can_reference_concept, T>;
2283
2284
struct dereferencable_concept {
2285
    template <typename T>
2286
    auto requires_(T& t)
2287
        -> decltype(requires_expr<can_reference<decltype(*t)>>{});
2288
};
2289
2290
template <typename T>
2291
inline constexpr bool dereferenceable = requires_<dereferencable_concept, T>;
2292
2293
// GCC and Clang allow dereferencing void* as an extension.
2294
// Let's kill that off now.
2295
2296
template <>
2297
inline constexpr bool dereferenceable<void*> = false;
2298
}  // namespace detail
2299
2300
using std::bidirectional_iterator_tag;
2301
using std::forward_iterator_tag;
2302
using std::input_iterator_tag;
2303
using std::output_iterator_tag;
2304
using std::random_access_iterator_tag;
2305
2306
#if SCN_STD >= SCN_STD_20 && defined(__cpp_lib_ranges) && \
2307
    __cpp_lib_ranges >= 201911L
2308
using std::contiguous_iterator_tag;
2309
#else
2310
struct contiguous_iterator_tag : random_access_iterator_tag {};
2311
#endif
2312
2313
template <typename T>
2314
struct iterator_category;
2315
2316
namespace detail {
2317
template <typename T, typename = void>
2318
struct iterator_category_ {};
2319
template <typename T>
2320
struct iterator_category_<T*>
2321
    : std::enable_if<std::is_object_v<T>, contiguous_iterator_tag> {};
2322
template <typename T>
2323
struct iterator_category_<const T> : iterator_category<T> {};
2324
template <typename T>
2325
struct iterator_category_<T, std::void_t<typename T::iterator_category>> {
2326
    using type = typename T::iterator_category;
2327
};
2328
}  // namespace detail
2329
2330
template <typename T>
2331
struct iterator_category : detail::iterator_category_<T> {};
2332
template <typename T>
2333
using iterator_category_t = typename iterator_category<T>::type;
2334
2335
namespace detail {
2336
2337
template <typename T, typename = void>
2338
struct legacy_iterator_category : iterator_category<T> {};
2339
2340
template <typename T>
2341
struct legacy_iterator_category<
2342
    T,
2343
    std::enable_if_t<
2344
        std::is_same_v<iterator_category_t<T>, contiguous_iterator_tag>>> {
2345
    using type = random_access_iterator_tag;
2346
};
2347
2348
template <typename T>
2349
using legacy_iterator_category_t = typename legacy_iterator_category<T>::type;
2350
2351
}  // namespace detail
2352
2353
template <typename T>
2354
using iter_reference_t =
2355
    std::enable_if_t<detail::dereferenceable<T>, decltype(*std::declval<T&>())>;
2356
2357
namespace detail {
2358
2359
struct readable_concept {
2360
    template <typename In>
2361
    auto requires_() -> decltype(std::declval<iter_value_t<In>>(),
2362
                                 std::declval<iter_reference_t<In>>());
2363
    // std::declval<iter_rvalue_reference_t<In>>());
2364
2365
    template <typename>
2366
    static auto test(long) -> std::false_type;
2367
2368
    template <typename In>
2369
    static auto test(int)
2370
        -> std::enable_if_t<detail::requires_<readable_concept, In>,
2371
#if 0
2372
            common_reference_with<iter_reference_t<In>&&, iter_value_t<In>&> &&
2373
            common_reference_with<iter_reference_t<In>&&,
2374
                                  iter_rvalue_reference_t<In>&&> &&
2375
            common_reference_with<iter_rvalue_reference_t<In>&&,
2376
                                  const iter_value_t<In>&>,
2377
#endif
2378
                            std::true_type>;
2379
};
2380
2381
}  // namespace detail
2382
2383
template <typename In>
2384
inline constexpr bool readable =
2385
    decltype(detail::readable_concept::test<In>(0))::value;
2386
2387
namespace detail {
2388
2389
struct writable_concept {
2390
    template <typename Out, typename T>
2391
    auto requires_(Out&& o, T&& t)
2392
        -> decltype(*o = std::forward<T>(t),
2393
                    *std::forward<Out>(o) = std::forward<T>(t),
2394
                    const_cast<const iter_reference_t<Out>&&>(*o) =
2395
                        std::forward<T>(t),
2396
                    const_cast<const iter_reference_t<Out>&&>(
2397
                        *std::forward<Out>(o)) = std::forward<T>(t));
2398
};
2399
2400
}  // namespace detail
2401
2402
template <typename Out, typename T>
2403
inline constexpr bool writable =
2404
    detail::requires_<detail::writable_concept, Out, T>;
2405
2406
namespace detail {
2407
2408
template <typename T>
2409
inline constexpr bool is_integer_like = std::is_integral_v<T>;
2410
2411
template <typename T>
2412
inline constexpr bool is_signed_integer_like =
2413
    std::is_integral_v<T> && std::is_signed_v<T>;
2414
2415
struct weakly_incrementable_concept {
2416
    template <typename I>
2417
    auto requires_(I i)
2418
        -> decltype(std::declval<iter_difference_t<I>>(),
2419
                    requires_expr<
2420
                        is_signed_integer_like<iter_difference_t<I>>>{},
2421
                    requires_expr<std::is_same_v<decltype(++i), I&>>{},
2422
                    i++);
2423
};
2424
2425
}  // namespace detail
2426
2427
template <typename I>
2428
inline constexpr bool weakly_incrementable =
2429
    std::is_default_constructible_v<I> && movable<I> &&
2430
    detail::requires_<detail::weakly_incrementable_concept, I>;
2431
2432
namespace detail {
2433
2434
struct incrementable_concept {
2435
    template <typename I>
2436
    auto requires_(I i)
2437
        -> decltype(requires_expr<std::is_same_v<decltype(i++), I>>{});
2438
};
2439
2440
}  // namespace detail
2441
2442
template <typename I>
2443
inline constexpr bool incrementable =
2444
    regular<I> && weakly_incrementable<I> &&
2445
    detail::requires_<detail::incrementable_concept, I>;
2446
2447
namespace detail {
2448
2449
struct input_or_output_iterator_concept {
2450
    template <typename I>
2451
    auto requires_(I i)
2452
        -> decltype(requires_expr<can_reference<decltype(*i)>>{});
2453
};
2454
2455
}  // namespace detail
2456
2457
template <typename I>
2458
inline constexpr bool input_or_output_iterator =
2459
    detail::requires_<detail::input_or_output_iterator_concept, I> &&
2460
    weakly_incrementable<I>;
2461
2462
template <typename S, typename I>
2463
inline constexpr bool sentinel_for =
2464
    semiregular<S> && input_or_output_iterator<I> &&
2465
    detail::weakly_equality_comparable_with<S, I>;
2466
2467
template <typename S, typename I>
2468
inline constexpr bool disable_sized_sentinel = false;
2469
2470
namespace detail {
2471
2472
struct sized_sentinel_for_concept {
2473
    template <typename S, typename I>
2474
    auto requires_(const S& s, const I& i)
2475
        -> decltype(requires_expr<std::is_same_v<decltype(s - i),
2476
                                                 iter_difference_t<I>>>{},
2477
                    requires_expr<std::is_same_v<decltype(i - s),
2478
                                                 iter_difference_t<I>>>{});
2479
};
2480
2481
}  // namespace detail
2482
2483
template <typename S, typename I>
2484
inline constexpr bool sized_sentinel_for =
2485
    sentinel_for<S, I> &&
2486
    !disable_sized_sentinel<std::remove_cv_t<S>, std::remove_cv_t<I>> &&
2487
    detail::requires_<detail::sized_sentinel_for_concept, S, I>;
2488
2489
// This is a hack, but I'm fed up with my tests breaking because GCC
2490
// has a silly extension
2491
template <typename S>
2492
inline constexpr bool sized_sentinel_for<S, void*> = false;
2493
2494
template <typename I>
2495
inline constexpr bool sized_sentinel_for<void*, I> = false;
2496
2497
template <>
2498
inline constexpr bool sized_sentinel_for<void*, void*> = false;
2499
2500
namespace detail {
2501
2502
// FIXME: Use ITER_CONCEPT, not iterator_category_t
2503
struct input_iterator_concept {
2504
    template <typename I>
2505
    auto requires_() -> iterator_category_t<I>;
2506
2507
    template <typename>
2508
    static auto test(long) -> std::false_type;
2509
2510
    template <typename I>
2511
    static auto test(int) -> std::enable_if_t<
2512
        input_or_output_iterator<I> && readable<I> &&
2513
            detail::requires_<input_iterator_concept, I> &&
2514
            std::is_base_of_v<input_iterator_tag, iterator_category_t<I>>,
2515
        std::true_type>;
2516
};
2517
2518
}  // namespace detail
2519
2520
template <typename I>
2521
inline constexpr bool input_iterator =
2522
    decltype(detail::input_iterator_concept::test<I>(0))::value;
2523
2524
namespace detail {
2525
2526
struct output_iterator_concept {
2527
    template <typename I, typename T>
2528
    auto requires_(I i, T&& t) -> decltype(*i++ = std::forward<T>(t));
2529
};
2530
2531
}  // namespace detail
2532
2533
template <typename I, typename T>
2534
inline constexpr bool output_iterator =
2535
    input_or_output_iterator<I> && writable<I, T> &&
2536
    detail::requires_<detail::output_iterator_concept, I, T>;
2537
2538
namespace detail {
2539
2540
struct forward_iterator_concept {
2541
    template <typename>
2542
    static auto test(long) -> std::false_type;
2543
2544
    template <typename I>
2545
    static auto test(int) -> std::enable_if_t<
2546
        input_iterator<I> &&
2547
            std::is_base_of_v<forward_iterator_tag, iterator_category_t<I>> &&
2548
            incrementable<I> && sentinel_for<I, I>,
2549
        std::true_type>;
2550
};
2551
2552
}  // namespace detail
2553
2554
template <typename I>
2555
inline constexpr bool forward_iterator =
2556
    decltype(detail::forward_iterator_concept::test<I>(0))::value;
2557
2558
namespace detail {
2559
2560
struct bidirectional_iterator_concept {
2561
    template <typename I>
2562
    auto requires_(I i)
2563
        -> decltype(requires_expr<std::is_same_v<decltype(--i), I&>>{},
2564
                    requires_expr<std::is_same_v<decltype(i--), I>>{});
2565
2566
    template <typename>
2567
    static auto test(long) -> std::false_type;
2568
2569
    template <typename I>
2570
    static auto test(int) -> std::enable_if_t<
2571
        forward_iterator<I> &&
2572
            std::is_base_of_v<bidirectional_iterator_tag,
2573
                              iterator_category_t<I>> &&
2574
            detail::requires_<bidirectional_iterator_concept, I>,
2575
        std::true_type>;
2576
};
2577
2578
}  // namespace detail
2579
2580
template <typename I>
2581
inline constexpr bool bidirectional_iterator =
2582
    decltype(detail::bidirectional_iterator_concept::test<I>(0))::value;
2583
2584
namespace detail {
2585
2586
struct random_access_iterator_concept {
2587
    template <typename>
2588
    static auto test(long) -> std::false_type;
2589
2590
    template <typename I>
2591
    static auto test(int) -> std::enable_if_t<
2592
        bidirectional_iterator<I> &&
2593
            std::is_base_of_v<random_access_iterator_tag,
2594
                              iterator_category_t<I>> &&
2595
            totally_ordered<I> && sized_sentinel_for<I, I> &&
2596
            detail::requires_<random_access_iterator_concept, I>,
2597
        std::true_type>;
2598
2599
    template <typename I>
2600
    auto requires_(I i, const I j, const iter_difference_t<I> n)
2601
        -> decltype(requires_expr<std::is_same_v<decltype(i += n), I&>>{},
2602
                    requires_expr<std::is_same_v<decltype(j + n), I>>{},
2603
#ifndef _MSC_VER
2604
                    requires_expr<std::is_same_v<decltype(n + j),
2605
                                                 I>>{},  // FIXME: MSVC doesn't
2606
                                                         // like this when I =
2607
                                                         // int*
2608
#endif
2609
                    requires_expr<std::is_same_v<decltype(i -= n), I&>>{},
2610
                    requires_expr<std::is_same_v<decltype(j - n), I>>{},
2611
                    requires_expr<
2612
                        std::is_same_v<decltype(j[n]), iter_reference_t<I>>>{});
2613
};
2614
2615
}  // namespace detail
2616
2617
template <typename I>
2618
inline constexpr bool random_access_iterator =
2619
    decltype(detail::random_access_iterator_concept::test<I>(0))::value;
2620
2621
namespace detail {
2622
2623
struct contiguous_iterator_concept {
2624
    template <typename>
2625
    static auto test(long) -> std::false_type;
2626
2627
    template <typename I>
2628
    static auto test(int) -> std::enable_if_t<
2629
        random_access_iterator<I> &&
2630
            /*std::is_base_of_v<contiguous_iterator_tag,
2631
                              iterator_category_t<I>> &&*/
2632
            detail::can_make_address_from_iterator<I> &&
2633
            std::is_lvalue_reference_v<iter_reference_t<I>> &&
2634
            std::is_same_v<iter_value_t<I>,
2635
                           remove_cvref_t<iter_reference_t<I>>>,
2636
        std::true_type>;
2637
};
2638
2639
}  // namespace detail
2640
2641
template <typename I>
2642
inline constexpr bool contiguous_iterator =
2643
    decltype(detail::contiguous_iterator_concept::test<I>(0))::value;
2644
2645
namespace detail::begin_ {
2646
2647
template <typename T>
2648
void begin(T&) = delete;
2649
template <typename T>
2650
void begin(const T&) = delete;
2651
2652
struct fn {
2653
private:
2654
    template <typename T,
2655
              std::enable_if_t<!std::is_lvalue_reference_v<T> &&
2656
                               !enable_borrowed_range<std::remove_cv_t<T>>>* =
2657
                  nullptr>
2658
    static constexpr void impl(T&&, priority_tag<3>) = delete;
2659
2660
    template <typename T,
2661
              std::enable_if_t<std::is_array_v<remove_cvref_t<T>>>* = nullptr>
2662
    static constexpr auto impl(T&& t, priority_tag<2>) noexcept
2663
        -> decltype(t + 0)
2664
    {
2665
        static_assert(ranges::input_or_output_iterator<decltype(t + 0)>);
2666
        return t + 0;
2667
    }
2668
2669
    template <typename T>
2670
    static constexpr auto impl(T&& t, priority_tag<1>) noexcept(
2671
        noexcept(decay_copy(SCN_FWD(t).begin())))
2672
        -> std::enable_if_t<
2673
            input_or_output_iterator<decltype(decay_copy(SCN_FWD(t).begin()))>,
2674
            decltype(decay_copy(SCN_FWD(t).begin()))>
2675
268M
    {
2676
268M
        return decay_copy(t.begin());
2677
268M
    }
std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v3::ranges::detail::begin_::fn::impl<std::__1::basic_string_view<char, std::__1::char_traits<char> >&>(std::__1::basic_string_view<char, std::__1::char_traits<char> >&, scn::v3::detail::priority_tag<1ul>)
Line
Count
Source
2675
389k
    {
2676
389k
        return decay_copy(t.begin());
2677
389k
    }
std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v3::ranges::detail::begin_::fn::impl<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, scn::v3::detail::priority_tag<1ul>)
Line
Count
Source
2675
774k
    {
2676
774k
        return decay_copy(t.begin());
2677
774k
    }
Unexecuted instantiation: std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v3::ranges::detail::begin_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >&>(scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >&, scn::v3::detail::priority_tag<1ul>)
std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v3::ranges::detail::begin_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >&>(scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >&, scn::v3::detail::priority_tag<1ul>)
Line
Count
Source
2675
2.02k
    {
2676
2.02k
        return decay_copy(t.begin());
2677
2.02k
    }
std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v3::ranges::detail::begin_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>&>(scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>&, scn::v3::detail::priority_tag<1ul>)
Line
Count
Source
2675
22.7M
    {
2676
22.7M
        return decay_copy(t.begin());
2677
22.7M
    }
Unexecuted instantiation: std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v3::ranges::detail::begin_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >::sentinel<true> >&>(scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >::sentinel<true> >&, scn::v3::detail::priority_tag<1ul>)
std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v3::ranges::detail::begin_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>&>(scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>&, scn::v3::detail::priority_tag<1ul>)
Line
Count
Source
2675
1.63M
    {
2676
1.63M
        return decay_copy(t.begin());
2677
1.63M
    }
std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v3::ranges::detail::begin_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >&>(scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >&, scn::v3::detail::priority_tag<1ul>)
Line
Count
Source
2675
362
    {
2676
362
        return decay_copy(t.begin());
2677
362
    }
Unexecuted instantiation: std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v3::ranges::detail::begin_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >&>(scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >&, scn::v3::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v3::ranges::detail::begin_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >&>(scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >&, scn::v3::detail::priority_tag<1ul>)
std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v3::ranges::detail::begin_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>&>(scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>&, scn::v3::detail::priority_tag<1ul>)
Line
Count
Source
2675
79.1M
    {
2676
79.1M
        return decay_copy(t.begin());
2677
79.1M
    }
Unexecuted instantiation: std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v3::ranges::detail::begin_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >::sentinel<true> >&>(scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >::sentinel<true> >&, scn::v3::detail::priority_tag<1ul>)
std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v3::ranges::detail::begin_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>&>(scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>&, scn::v3::detail::priority_tag<1ul>)
Line
Count
Source
2675
233k
    {
2676
233k
        return decay_copy(t.begin());
2677
233k
    }
Unexecuted instantiation: std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v3::ranges::detail::begin_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >&>(scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >&, scn::v3::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v3::ranges::detail::begin_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >(scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>&&, scn::v3::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v3::ranges::detail::begin_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >(scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>&&, scn::v3::detail::priority_tag<1ul>)
std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v3::ranges::detail::begin_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> const&>(scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> const&, scn::v3::detail::priority_tag<1ul>)
Line
Count
Source
2675
9.47M
    {
2676
9.47M
        return decay_copy(t.begin());
2677
9.47M
    }
std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v3::ranges::detail::begin_::fn::impl<std::__1::deque<char, std::__1::allocator<char> > const&>(std::__1::deque<char, std::__1::allocator<char> > const&, scn::v3::detail::priority_tag<1ul>)
Line
Count
Source
2675
371k
    {
2676
371k
        return decay_copy(t.begin());
2677
371k
    }
std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v3::ranges::detail::begin_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > const&>(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > const&, scn::v3::detail::priority_tag<1ul>)
Line
Count
Source
2675
9.20M
    {
2676
9.20M
        return decay_copy(t.begin());
2677
9.20M
    }
std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v3::ranges::detail::begin_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >&>(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >&, scn::v3::detail::priority_tag<1ul>)
Line
Count
Source
2675
4.41M
    {
2676
4.41M
        return decay_copy(t.begin());
2677
4.41M
    }
std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v3::ranges::detail::begin_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> const&>(scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> const&, scn::v3::detail::priority_tag<1ul>)
Line
Count
Source
2675
79.2M
    {
2676
79.2M
        return decay_copy(t.begin());
2677
79.2M
    }
std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v3::ranges::detail::begin_::fn::impl<std::__1::deque<wchar_t, std::__1::allocator<wchar_t> > const&>(std::__1::deque<wchar_t, std::__1::allocator<wchar_t> > const&, scn::v3::detail::priority_tag<1ul>)
Line
Count
Source
2675
743k
    {
2676
743k
        return decay_copy(t.begin());
2677
743k
    }
std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v3::ranges::detail::begin_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > const&>(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > const&, scn::v3::detail::priority_tag<1ul>)
Line
Count
Source
2675
40.0M
    {
2676
40.0M
        return decay_copy(t.begin());
2677
40.0M
    }
std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v3::ranges::detail::begin_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >&>(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >&, scn::v3::detail::priority_tag<1ul>)
Line
Count
Source
2675
19.6M
    {
2676
19.6M
        return decay_copy(t.begin());
2677
19.6M
    }
2678
2679
    template <typename T>
2680
    static constexpr auto impl(T&& t, priority_tag<0>) noexcept(
2681
        noexcept(decay_copy(begin(SCN_FWD(t)))))
2682
        -> std::enable_if_t<
2683
            input_or_output_iterator<decltype(decay_copy(begin(SCN_FWD(t))))>,
2684
            decltype(decay_copy(begin(SCN_FWD(t))))>
2685
    {
2686
        return decay_copy(begin(SCN_FWD(t)));
2687
    }
2688
2689
public:
2690
    template <typename T>
2691
    constexpr auto operator()(T&& t) const
2692
        noexcept(noexcept(fn::impl(SCN_FWD(t), priority_tag<3>{})))
2693
            -> decltype(fn::impl(SCN_FWD(t), priority_tag<3>{}))
2694
268M
    {
2695
268M
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2696
268M
    }
_ZNK3scn2v36ranges6detail6begin_2fnclIRNSt3__117basic_string_viewIcNS6_11char_traitsIcEEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2694
389k
    {
2695
389k
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2696
389k
    }
_ZNK3scn2v36ranges6detail6begin_2fnclIRNSt3__117basic_string_viewIwNS6_11char_traitsIwEEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2694
774k
    {
2695
774k
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2696
774k
    }
Unexecuted instantiation: _ZNK3scn2v36ranges6detail6begin_2fnclIRNS2_9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS1_18default_sentinel_tEEESG_EEEEDTclsr2fnE4implscDtfp_Efp_tlNSB_12priority_tagILm3EEEEEEOT_
_ZNK3scn2v36ranges6detail6begin_2fnclIRNS2_9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcSC_EESD_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2694
2.02k
    {
2695
2.02k
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2696
2.02k
    }
_ZNK3scn2v36ranges6detail6begin_2fnclIRNS2_9subrange_8subrangeIPKcS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2694
22.7M
    {
2695
22.7M
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2696
22.7M
    }
Unexecuted instantiation: _ZNK3scn2v36ranges6detail6begin_2fnclIRNS2_9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS1_18default_sentinel_tEEENS8_15take_width_viewINS7_ISE_SF_EEE8sentinelILb1EEEEEEEDTclsr2fnE4implscDtfp_Efp_tlNSB_12priority_tagILm3EEEEEEOT_
_ZNK3scn2v36ranges6detail6begin_2fnclIRNS2_9subrange_8subrangeINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS1_18default_sentinel_tEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS8_12priority_tagILm3EEEEEEOT_
Line
Count
Source
2694
1.63M
    {
2695
1.63M
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2696
1.63M
    }
_ZNK3scn2v36ranges6detail6begin_2fnclIRNS2_9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcSC_EENS8_15take_width_viewINS7_ISC_SC_EEE8sentinelILb1EEEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2694
362
    {
2695
362
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2696
362
    }
Unexecuted instantiation: _ZNK3scn2v36ranges6detail6begin_2fnclIRNS2_9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS1_18default_sentinel_tEEESG_EEEEDTclsr2fnE4implscDtfp_Efp_tlNSB_12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v36ranges6detail6begin_2fnclIRNS2_9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwSC_EESD_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
_ZNK3scn2v36ranges6detail6begin_2fnclIRNS2_9subrange_8subrangeIPKwS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2694
79.1M
    {
2695
79.1M
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2696
79.1M
    }
Unexecuted instantiation: _ZNK3scn2v36ranges6detail6begin_2fnclIRNS2_9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS1_18default_sentinel_tEEENS8_15take_width_viewINS7_ISE_SF_EEE8sentinelILb1EEEEEEEDTclsr2fnE4implscDtfp_Efp_tlNSB_12priority_tagILm3EEEEEEOT_
_ZNK3scn2v36ranges6detail6begin_2fnclIRNS2_9subrange_8subrangeINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS1_18default_sentinel_tEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS8_12priority_tagILm3EEEEEEOT_
Line
Count
Source
2694
233k
    {
2695
233k
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2696
233k
    }
Unexecuted instantiation: _ZNK3scn2v36ranges6detail6begin_2fnclIRNS2_9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwSC_EENS8_15take_width_viewINS7_ISC_SC_EEE8sentinelILb1EEEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v36ranges6detail6begin_2fnclINS2_9subrange_8subrangeIPKcS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v36ranges6detail6begin_2fnclINS2_9subrange_8subrangeIPKwS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
_ZNK3scn2v36ranges6detail6begin_2fnclIRKNS2_9subrange_8subrangeIPKcS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2694
9.47M
    {
2695
9.47M
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2696
9.47M
    }
_ZNK3scn2v36ranges6detail6begin_2fnclIRKNSt3__15dequeIcNS6_9allocatorIcEEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2694
371k
    {
2695
371k
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2696
371k
    }
_ZNK3scn2v36ranges6detail6begin_2fnclIRKNS2_9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRSA_PKSB_lLl4096EEESF_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2694
9.20M
    {
2695
9.20M
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2696
9.20M
    }
_ZNK3scn2v36ranges6detail6begin_2fnclIRNS2_9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRSA_PKSB_lLl4096EEESF_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2694
4.41M
    {
2695
4.41M
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2696
4.41M
    }
_ZNK3scn2v36ranges6detail6begin_2fnclIRKNS2_9subrange_8subrangeIPKwS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2694
79.2M
    {
2695
79.2M
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2696
79.2M
    }
_ZNK3scn2v36ranges6detail6begin_2fnclIRKNSt3__15dequeIwNS6_9allocatorIwEEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2694
743k
    {
2695
743k
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2696
743k
    }
_ZNK3scn2v36ranges6detail6begin_2fnclIRKNS2_9subrange_8subrangeINSt3__116__deque_iteratorIwPKwRSA_PKSB_lLl1024EEESF_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2694
40.0M
    {
2695
40.0M
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2696
40.0M
    }
_ZNK3scn2v36ranges6detail6begin_2fnclIRNS2_9subrange_8subrangeINSt3__116__deque_iteratorIwPKwRSA_PKSB_lLl1024EEESF_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2694
19.6M
    {
2695
19.6M
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2696
19.6M
    }
2697
};
2698
2699
}  // namespace detail::begin_
2700
2701
inline constexpr auto begin = detail::begin_::fn{};
2702
2703
namespace detail::end_ {
2704
2705
template <typename T>
2706
void end(T&) = delete;
2707
template <typename T>
2708
void end(const T&) = delete;
2709
2710
struct fn {
2711
private:
2712
    template <typename T,
2713
              std::enable_if_t<!std::is_lvalue_reference_v<T> &&
2714
                               !enable_borrowed_range<std::remove_cv_t<T>>>* =
2715
                  nullptr>
2716
    static constexpr void impl(T&&, priority_tag<3>) = delete;
2717
2718
    template <typename T,
2719
              std::enable_if_t<std::is_array_v<remove_cvref_t<T>>>* = nullptr>
2720
    static constexpr auto impl(T&& t, priority_tag<2>) noexcept
2721
        -> decltype(t + std::extent_v<remove_cvref_t<T>>)
2722
    {
2723
        return t + std::extent_v<remove_cvref_t<T>>;
2724
    }
2725
2726
    template <typename T,
2727
              typename S = decltype(decay_copy(SCN_DECLVAL(T).end())),
2728
              typename I = decltype(::scn::ranges::begin(SCN_DECLVAL(T)))>
2729
    static constexpr auto impl(T&& t, priority_tag<1>) noexcept(
2730
        noexcept(decay_copy(SCN_FWD(t).end())))
2731
        -> std::enable_if_t<sentinel_for<S, I>,
2732
                            decltype(decay_copy(SCN_FWD(t).end()))>
2733
506M
    {
2734
506M
        return decay_copy(SCN_FWD(t).end());
2735
506M
    }
std::__1::enable_if<sentinel_for<char const*, char const*>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v3::ranges::detail::end_::fn::impl<std::__1::basic_string_view<char, std::__1::char_traits<char> >&, char const*, char const*>(std::__1::basic_string_view<char, std::__1::char_traits<char> >&, scn::v3::detail::priority_tag<1ul>)
Line
Count
Source
2733
4.95M
    {
2734
4.95M
        return decay_copy(SCN_FWD(t).end());
2735
4.95M
    }
std::__1::enable_if<sentinel_for<wchar_t const*, wchar_t const*>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v3::ranges::detail::end_::fn::impl<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, wchar_t const*, wchar_t const*>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, scn::v3::detail::priority_tag<1ul>)
Line
Count
Source
2733
40.0M
    {
2734
40.0M
        return decay_copy(SCN_FWD(t).end());
2735
40.0M
    }
Unexecuted instantiation: std::__1::enable_if<sentinel_for<char const*, char const*>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v3::ranges::detail::end_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> const&, char const*, char const*>(scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> const&, scn::v3::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<sentinel_for<wchar_t const*, wchar_t const*>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v3::ranges::detail::end_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> const&, wchar_t const*, wchar_t const*>(scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> const&, scn::v3::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<sentinel_for<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v3::ranges::detail::end_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >&, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >(scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >&, scn::v3::detail::priority_tag<1ul>)
std::__1::enable_if<sentinel_for<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v3::ranges::detail::end_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >&, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >(scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >&, scn::v3::detail::priority_tag<1ul>)
Line
Count
Source
2733
2.02k
    {
2734
2.02k
        return decay_copy(SCN_FWD(t).end());
2735
2.02k
    }
Unexecuted instantiation: std::__1::enable_if<sentinel_for<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v3::ranges::detail::end_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >&, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >(scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >&, scn::v3::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<sentinel_for<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v3::ranges::detail::end_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >&, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >(scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >&, scn::v3::detail::priority_tag<1ul>)
std::__1::enable_if<sentinel_for<char const*, char const*>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v3::ranges::detail::end_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>&, char const*, char const*>(scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>&, scn::v3::detail::priority_tag<1ul>)
Line
Count
Source
2733
4.56M
    {
2734
4.56M
        return decay_copy(SCN_FWD(t).end());
2735
4.56M
    }
std::__1::enable_if<sentinel_for<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v3::ranges::detail::end_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > const&, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > const&, scn::v3::detail::priority_tag<1ul>)
Line
Count
Source
2733
44.4M
    {
2734
44.4M
        return decay_copy(SCN_FWD(t).end());
2735
44.4M
    }
std::__1::enable_if<sentinel_for<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v3::ranges::detail::end_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >&, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >&, scn::v3::detail::priority_tag<1ul>)
Line
Count
Source
2733
4.41M
    {
2734
4.41M
        return decay_copy(SCN_FWD(t).end());
2735
4.41M
    }
std::__1::enable_if<sentinel_for<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v3::ranges::detail::end_::fn::impl<std::__1::deque<char, std::__1::allocator<char> > const&, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >(std::__1::deque<char, std::__1::allocator<char> > const&, scn::v3::detail::priority_tag<1ul>)
Line
Count
Source
2733
4.78M
    {
2734
4.78M
        return decay_copy(SCN_FWD(t).end());
2735
4.78M
    }
std::__1::enable_if<sentinel_for<wchar_t const*, wchar_t const*>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v3::ranges::detail::end_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>&, wchar_t const*, wchar_t const*>(scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>&, scn::v3::detail::priority_tag<1ul>)
Line
Count
Source
2733
39.2M
    {
2734
39.2M
        return decay_copy(SCN_FWD(t).end());
2735
39.2M
    }
std::__1::enable_if<sentinel_for<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v3::ranges::detail::end_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > const&, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > const&, scn::v3::detail::priority_tag<1ul>)
Line
Count
Source
2733
323M
    {
2734
323M
        return decay_copy(SCN_FWD(t).end());
2735
323M
    }
std::__1::enable_if<sentinel_for<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v3::ranges::detail::end_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >&, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >&, scn::v3::detail::priority_tag<1ul>)
Line
Count
Source
2733
19.6M
    {
2734
19.6M
        return decay_copy(SCN_FWD(t).end());
2735
19.6M
    }
std::__1::enable_if<sentinel_for<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v3::ranges::detail::end_::fn::impl<std::__1::deque<wchar_t, std::__1::allocator<wchar_t> > const&, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >(std::__1::deque<wchar_t, std::__1::allocator<wchar_t> > const&, scn::v3::detail::priority_tag<1ul>)
Line
Count
Source
2733
20.3M
    {
2734
20.3M
        return decay_copy(SCN_FWD(t).end());
2735
20.3M
    }
2736
2737
    template <typename T,
2738
              typename S = decltype(decay_copy(end(SCN_DECLVAL(T)))),
2739
              typename I = decltype(::scn::ranges::begin(SCN_DECLVAL(T)))>
2740
    static constexpr auto impl(T&& t, priority_tag<0>) noexcept(noexcept(
2741
        decay_copy(end(SCN_FWD(t))))) -> std::enable_if_t<sentinel_for<S, I>, S>
2742
    {
2743
        return decay_copy(end(SCN_FWD(t)));
2744
    }
2745
2746
public:
2747
    template <typename T>
2748
    constexpr auto operator()(T&& t) const
2749
        noexcept(noexcept(fn::impl(SCN_FWD(t), priority_tag<3>{})))
2750
            -> decltype(fn::impl(SCN_FWD(t), priority_tag<3>{}))
2751
506M
    {
2752
506M
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2753
506M
    }
_ZNK3scn2v36ranges6detail4end_2fnclIRNSt3__117basic_string_viewIcNS6_11char_traitsIcEEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2751
4.95M
    {
2752
4.95M
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2753
4.95M
    }
_ZNK3scn2v36ranges6detail4end_2fnclIRNSt3__117basic_string_viewIwNS6_11char_traitsIwEEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2751
40.0M
    {
2752
40.0M
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2753
40.0M
    }
Unexecuted instantiation: _ZNK3scn2v36ranges6detail4end_2fnclIRKNS2_9subrange_8subrangeIPKcS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v36ranges6detail4end_2fnclIRKNS2_9subrange_8subrangeIPKwS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v36ranges6detail4end_2fnclIRNS2_9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS1_18default_sentinel_tEEESG_EEEEDTclsr2fnE4implscDtfp_Efp_tlNSB_12priority_tagILm3EEEEEEOT_
_ZNK3scn2v36ranges6detail4end_2fnclIRNS2_9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcSC_EESD_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2751
2.02k
    {
2752
2.02k
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2753
2.02k
    }
Unexecuted instantiation: _ZNK3scn2v36ranges6detail4end_2fnclIRNS2_9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS1_18default_sentinel_tEEESG_EEEEDTclsr2fnE4implscDtfp_Efp_tlNSB_12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v36ranges6detail4end_2fnclIRNS2_9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwSC_EESD_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
_ZNK3scn2v36ranges6detail4end_2fnclIRNS2_9subrange_8subrangeIPKcS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2751
4.56M
    {
2752
4.56M
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2753
4.56M
    }
_ZNK3scn2v36ranges6detail4end_2fnclIRKNS2_9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRSA_PKSB_lLl4096EEESF_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2751
44.4M
    {
2752
44.4M
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2753
44.4M
    }
_ZNK3scn2v36ranges6detail4end_2fnclIRNS2_9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRSA_PKSB_lLl4096EEESF_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2751
4.41M
    {
2752
4.41M
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2753
4.41M
    }
_ZNK3scn2v36ranges6detail4end_2fnclIRKNSt3__15dequeIcNS6_9allocatorIcEEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2751
4.78M
    {
2752
4.78M
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2753
4.78M
    }
_ZNK3scn2v36ranges6detail4end_2fnclIRNS2_9subrange_8subrangeIPKwS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2751
39.2M
    {
2752
39.2M
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2753
39.2M
    }
_ZNK3scn2v36ranges6detail4end_2fnclIRKNS2_9subrange_8subrangeINSt3__116__deque_iteratorIwPKwRSA_PKSB_lLl1024EEESF_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2751
323M
    {
2752
323M
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2753
323M
    }
_ZNK3scn2v36ranges6detail4end_2fnclIRNS2_9subrange_8subrangeINSt3__116__deque_iteratorIwPKwRSA_PKSB_lLl1024EEESF_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2751
19.6M
    {
2752
19.6M
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2753
19.6M
    }
_ZNK3scn2v36ranges6detail4end_2fnclIRKNSt3__15dequeIwNS6_9allocatorIwEEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2751
20.3M
    {
2752
20.3M
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2753
20.3M
    }
2754
};
2755
2756
}  // namespace detail::end_
2757
2758
inline constexpr auto end = detail::end_::fn{};
2759
2760
namespace detail {
2761
struct range_concept {
2762
    template <typename T>
2763
    auto requires_(T& t) -> decltype(ranges::begin(t), ranges::end(t));
2764
};
2765
}  // namespace detail
2766
2767
template <typename T>
2768
inline constexpr bool range = detail::requires_<detail::range_concept, T>;
2769
2770
template <typename T>
2771
using iterator_t = decltype(ranges::begin(std::declval<T&>()));
2772
2773
template <typename R>
2774
using sentinel_t =
2775
    std::enable_if_t<range<R>, decltype(ranges::end(std::declval<R&>()))>;
2776
2777
template <typename R>
2778
using range_difference_t =
2779
    std::enable_if_t<range<R>, iter_difference_t<iterator_t<R>>>;
2780
2781
template <typename R>
2782
using range_value_t = std::enable_if_t<range<R>, iter_value_t<iterator_t<R>>>;
2783
2784
template <typename R>
2785
using range_reference_t =
2786
    std::enable_if_t<range<R>, iter_reference_t<iterator_t<R>>>;
2787
2788
namespace detail {
2789
template <typename, typename = void>
2790
inline constexpr bool is_object_pointer_v = false;
2791
template <typename P>
2792
inline constexpr bool
2793
    is_object_pointer_v<P,
2794
                        std::enable_if_t<std::is_pointer_v<P> &&
2795
                                         std::is_object_v<iter_value_t<P>>>> =
2796
        true;
2797
2798
namespace data_ {
2799
2800
struct fn {
2801
private:
2802
    template <typename T,
2803
              typename D = decltype(decay_copy(SCN_DECLVAL(T&).data()))>
2804
    static constexpr auto impl(T& t, priority_tag<1>) noexcept(noexcept(
2805
        decay_copy(t.data()))) -> std::enable_if_t<is_object_pointer_v<D>, D>
2806
96.2M
    {
2807
96.2M
        return t.data();
2808
96.2M
    }
std::__1::enable_if<is_object_pointer_v<char const*>, char const*>::type scn::v3::ranges::detail::data_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, char const*>(scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>&, scn::v3::detail::priority_tag<1ul>)
Line
Count
Source
2806
9.38M
    {
2807
9.38M
        return t.data();
2808
9.38M
    }
std::__1::enable_if<is_object_pointer_v<wchar_t const*>, wchar_t const*>::type scn::v3::ranges::detail::data_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t const*>(scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>&, scn::v3::detail::priority_tag<1ul>)
Line
Count
Source
2806
39.7M
    {
2807
39.7M
        return t.data();
2808
39.7M
    }
std::__1::enable_if<is_object_pointer_v<char const*>, char const*>::type scn::v3::ranges::detail::data_::fn::impl<std::__1::basic_string_view<char, std::__1::char_traits<char> >, char const*>(std::__1::basic_string_view<char, std::__1::char_traits<char> >&, scn::v3::detail::priority_tag<1ul>)
Line
Count
Source
2806
2.10M
    {
2807
2.10M
        return t.data();
2808
2.10M
    }
std::__1::enable_if<is_object_pointer_v<char const*>, char const*>::type scn::v3::ranges::detail::data_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> const, char const*>(scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> const&, scn::v3::detail::priority_tag<1ul>)
Line
Count
Source
2806
4.94M
    {
2807
4.94M
        return t.data();
2808
4.94M
    }
std::__1::enable_if<is_object_pointer_v<wchar_t const*>, wchar_t const*>::type scn::v3::ranges::detail::data_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> const, wchar_t const*>(scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> const&, scn::v3::detail::priority_tag<1ul>)
Line
Count
Source
2806
40.0M
    {
2807
40.0M
        return t.data();
2808
40.0M
    }
2809
2810
    template <typename T>
2811
    static constexpr auto impl(T&& t, priority_tag<0>) noexcept(
2812
        noexcept(scn::ranges::begin(SCN_FWD(t))))
2813
        -> std::enable_if_t<
2814
            is_object_pointer_v<decltype(scn::ranges::begin(SCN_FWD(t)))>,
2815
            decltype(scn::ranges::begin(SCN_FWD(t)))>
2816
0
    {
2817
0
        return scn::ranges::begin(SCN_FWD(t));
2818
0
    }
Unexecuted instantiation: std::__1::enable_if<is_object_pointer_v<decltype (scn::v3::ranges::begin(static_cast<decltype ({parm#1})>({parm#1})))>, decltype (scn::v3::ranges::begin(static_cast<decltype ({parm#1})>({parm#1})))>::type scn::v3::ranges::detail::data_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >(scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>&&, scn::v3::detail::priority_tag<0ul>)
Unexecuted instantiation: std::__1::enable_if<is_object_pointer_v<decltype (scn::v3::ranges::begin(static_cast<decltype ({parm#1})>({parm#1})))>, decltype (scn::v3::ranges::begin(static_cast<decltype ({parm#1})>({parm#1})))>::type scn::v3::ranges::detail::data_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >(scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>&&, scn::v3::detail::priority_tag<0ul>)
2819
2820
public:
2821
    template <typename T>
2822
    constexpr auto operator()(T&& t) const
2823
        noexcept(noexcept(fn::impl(SCN_FWD(t), priority_tag<1>{})))
2824
            -> decltype(fn::impl(SCN_FWD(t), priority_tag<1>{}))
2825
96.2M
    {
2826
96.2M
        return fn::impl(SCN_FWD(t), priority_tag<1>{});
2827
96.2M
    }
_ZNK3scn2v36ranges6detail5data_2fnclIRNS2_9subrange_8subrangeIPKcS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm1EEEEEEOT_
Line
Count
Source
2825
9.38M
    {
2826
9.38M
        return fn::impl(SCN_FWD(t), priority_tag<1>{});
2827
9.38M
    }
_ZNK3scn2v36ranges6detail5data_2fnclIRNS2_9subrange_8subrangeIPKwS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm1EEEEEEOT_
Line
Count
Source
2825
39.7M
    {
2826
39.7M
        return fn::impl(SCN_FWD(t), priority_tag<1>{});
2827
39.7M
    }
_ZNK3scn2v36ranges6detail5data_2fnclIRNSt3__117basic_string_viewIcNS6_11char_traitsIcEEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm1EEEEEEOT_
Line
Count
Source
2825
2.10M
    {
2826
2.10M
        return fn::impl(SCN_FWD(t), priority_tag<1>{});
2827
2.10M
    }
Unexecuted instantiation: _ZNK3scn2v36ranges6detail5data_2fnclINS2_9subrange_8subrangeIPKcS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm1EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v36ranges6detail5data_2fnclINS2_9subrange_8subrangeIPKwS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm1EEEEEEOT_
_ZNK3scn2v36ranges6detail5data_2fnclIRKNS2_9subrange_8subrangeIPKcS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm1EEEEEEOT_
Line
Count
Source
2825
4.94M
    {
2826
4.94M
        return fn::impl(SCN_FWD(t), priority_tag<1>{});
2827
4.94M
    }
_ZNK3scn2v36ranges6detail5data_2fnclIRKNS2_9subrange_8subrangeIPKwS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm1EEEEEEOT_
Line
Count
Source
2825
40.0M
    {
2826
40.0M
        return fn::impl(SCN_FWD(t), priority_tag<1>{});
2827
40.0M
    }
2828
};
2829
2830
}  // namespace data_
2831
}  // namespace detail
2832
2833
inline constexpr auto data = detail::data_::fn{};
2834
2835
template <typename T>
2836
inline constexpr bool disable_sized_range = false;
2837
2838
namespace detail::size_ {
2839
2840
template <typename T>
2841
void size(T&&) = delete;
2842
template <typename T>
2843
void size(T&) = delete;
2844
2845
struct fn {
2846
private:
2847
    template <typename T, std::size_t N>
2848
    static constexpr std::size_t impl(const T (&&)[N], priority_tag<3>) noexcept
2849
    {
2850
        return N;
2851
    }
2852
2853
    template <typename T, std::size_t N>
2854
    static constexpr std::size_t impl(const T (&)[N], priority_tag<3>) noexcept
2855
    {
2856
        return N;
2857
    }
2858
2859
    template <typename T,
2860
              typename I = decltype(decay_copy(std::declval<T>().size()))>
2861
    static constexpr auto impl(T&& t, priority_tag<2>) noexcept(
2862
        noexcept(decay_copy(SCN_FWD(t).size())))
2863
        -> std::enable_if_t<std::is_integral_v<I> &&
2864
                                !disable_sized_range<remove_cvref_t<T>>,
2865
                            I>
2866
50.1M
    {
2867
50.1M
        return decay_copy(SCN_FWD(t).size());
2868
50.1M
    }
_ZN3scn2v36ranges6detail5size_2fn4implIRNSt3__112basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEEmEENS6_9enable_ifIXaasr3stdE13is_integral_vIT0_Ent19disable_sized_rangeIu11__remove_cvIu20__remove_reference_tIT_EEEESF_E4typeEOSG_NS0_6detail12priority_tagILm2EEE
Line
Count
Source
2866
4.59M
    {
2867
4.59M
        return decay_copy(SCN_FWD(t).size());
2868
4.59M
    }
_ZN3scn2v36ranges6detail5size_2fn4implIRKNSt3__117basic_string_viewIcNS6_11char_traitsIcEEEEmEENS6_9enable_ifIXaasr3stdE13is_integral_vIT0_Ent19disable_sized_rangeIu11__remove_cvIu20__remove_reference_tIT_EEEESE_E4typeEOSF_NS0_6detail12priority_tagILm2EEE
Line
Count
Source
2866
74
    {
2867
74
        return decay_copy(SCN_FWD(t).size());
2868
74
    }
_ZN3scn2v36ranges6detail5size_2fn4implIRKNSt3__112basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEEmEENS6_9enable_ifIXaasr3stdE13is_integral_vIT0_Ent19disable_sized_rangeIu11__remove_cvIu20__remove_reference_tIT_EEEESG_E4typeEOSH_NS0_6detail12priority_tagILm2EEE
Line
Count
Source
2866
610k
    {
2867
610k
        return decay_copy(SCN_FWD(t).size());
2868
610k
    }
Unexecuted instantiation: _ZN3scn2v36ranges6detail5size_2fn4implIRKNSt3__117basic_string_viewIwNS6_11char_traitsIwEEEEmEENS6_9enable_ifIXaasr3stdE13is_integral_vIT0_Ent19disable_sized_rangeIu11__remove_cvIu20__remove_reference_tIT_EEEESE_E4typeEOSF_NS0_6detail12priority_tagILm2EEE
Unexecuted instantiation: _ZN3scn2v36ranges6detail5size_2fn4implINS2_9subrange_8subrangeIPKcS9_EEmEENSt3__19enable_ifIXaasr3stdE13is_integral_vIT0_Ent19disable_sized_rangeIu11__remove_cvIu20__remove_reference_tIT_EEEESD_E4typeEOSE_NS0_6detail12priority_tagILm2EEE
Unexecuted instantiation: _ZN3scn2v36ranges6detail5size_2fn4implINS2_9subrange_8subrangeIPKwS9_EEmEENSt3__19enable_ifIXaasr3stdE13is_integral_vIT0_Ent19disable_sized_rangeIu11__remove_cvIu20__remove_reference_tIT_EEEESD_E4typeEOSE_NS0_6detail12priority_tagILm2EEE
_ZN3scn2v36ranges6detail5size_2fn4implIRKNS2_9subrange_8subrangeIPKcS9_EEmEENSt3__19enable_ifIXaasr3stdE13is_integral_vIT0_Ent19disable_sized_rangeIu11__remove_cvIu20__remove_reference_tIT_EEEESF_E4typeEOSG_NS0_6detail12priority_tagILm2EEE
Line
Count
Source
2866
4.94M
    {
2867
4.94M
        return decay_copy(SCN_FWD(t).size());
2868
4.94M
    }
_ZN3scn2v36ranges6detail5size_2fn4implIRKNS2_9subrange_8subrangeIPKwS9_EEmEENSt3__19enable_ifIXaasr3stdE13is_integral_vIT0_Ent19disable_sized_rangeIu11__remove_cvIu20__remove_reference_tIT_EEEESF_E4typeEOSG_NS0_6detail12priority_tagILm2EEE
Line
Count
Source
2866
40.0M
    {
2867
40.0M
        return decay_copy(SCN_FWD(t).size());
2868
40.0M
    }
2869
2870
    template <typename T,
2871
              typename I = decltype(decay_copy(size(std::declval<T>())))>
2872
    static constexpr auto impl(T&& t, priority_tag<1>) noexcept(
2873
        noexcept(decay_copy(size(SCN_FWD(t)))))
2874
        -> std::enable_if_t<std::is_integral_v<I> &&
2875
                                !disable_sized_range<remove_cvref_t<T>>,
2876
                            I>
2877
    {
2878
        return decay_copy(size(SCN_FWD(t)));
2879
    }
2880
2881
    template <typename T,
2882
              typename I = decltype(scn::ranges::begin(SCN_DECLVAL(T))),
2883
              typename S = decltype(scn::ranges::end(SCN_DECLVAL(T))),
2884
              typename D = decltype(static_cast<std::size_t>(SCN_DECLVAL(S) -
2885
                                                             SCN_DECLVAL(I)))>
2886
    static constexpr auto impl(T&& t, priority_tag<0>) noexcept(noexcept(
2887
        static_cast<size_t>(scn::ranges::end(t) - scn::ranges::begin(t))))
2888
        -> std::enable_if_t<!std::is_array_v<remove_cvref_t<T>> &&
2889
                                sized_sentinel_for<S, I> && forward_iterator<I>,
2890
                            D>
2891
    {
2892
        return static_cast<size_t>(scn::ranges::end(t) - scn::ranges::begin(t));
2893
    }
2894
2895
public:
2896
    template <typename T>
2897
    constexpr auto operator()(T&& t) const
2898
        noexcept(noexcept(fn::impl(std::forward<T>(t), priority_tag<3>{})))
2899
            -> decltype(fn::impl(std::forward<T>(t), priority_tag<3>{}))
2900
50.1M
    {
2901
50.1M
        return fn::impl(std::forward<T>(t), priority_tag<3>{});
2902
50.1M
    }
_ZNK3scn2v36ranges6detail5size_2fnclIRNSt3__112basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEEEEDTclsr2fnE4implclsr3stdE7forwardIT_Efp_EtlNS0_6detail12priority_tagILm3EEEEEEOSE_
Line
Count
Source
2900
4.59M
    {
2901
4.59M
        return fn::impl(std::forward<T>(t), priority_tag<3>{});
2902
4.59M
    }
_ZNK3scn2v36ranges6detail5size_2fnclIRKNSt3__117basic_string_viewIcNS6_11char_traitsIcEEEEEEDTclsr2fnE4implclsr3stdE7forwardIT_Efp_EtlNS0_6detail12priority_tagILm3EEEEEEOSD_
Line
Count
Source
2900
74
    {
2901
74
        return fn::impl(std::forward<T>(t), priority_tag<3>{});
2902
74
    }
_ZNK3scn2v36ranges6detail5size_2fnclIRKNSt3__112basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEEEEDTclsr2fnE4implclsr3stdE7forwardIT_Efp_EtlNS0_6detail12priority_tagILm3EEEEEEOSF_
Line
Count
Source
2900
610k
    {
2901
610k
        return fn::impl(std::forward<T>(t), priority_tag<3>{});
2902
610k
    }
Unexecuted instantiation: _ZNK3scn2v36ranges6detail5size_2fnclIRKNSt3__117basic_string_viewIwNS6_11char_traitsIwEEEEEEDTclsr2fnE4implclsr3stdE7forwardIT_Efp_EtlNS0_6detail12priority_tagILm3EEEEEEOSD_
Unexecuted instantiation: _ZNK3scn2v36ranges6detail5size_2fnclINS2_9subrange_8subrangeIPKcS9_EEEEDTclsr2fnE4implclsr3stdE7forwardIT_Efp_EtlNS0_6detail12priority_tagILm3EEEEEEOSB_
Unexecuted instantiation: _ZNK3scn2v36ranges6detail5size_2fnclINS2_9subrange_8subrangeIPKwS9_EEEEDTclsr2fnE4implclsr3stdE7forwardIT_Efp_EtlNS0_6detail12priority_tagILm3EEEEEEOSB_
_ZNK3scn2v36ranges6detail5size_2fnclIRKNS2_9subrange_8subrangeIPKcS9_EEEEDTclsr2fnE4implclsr3stdE7forwardIT_Efp_EtlNS0_6detail12priority_tagILm3EEEEEEOSD_
Line
Count
Source
2900
4.94M
    {
2901
4.94M
        return fn::impl(std::forward<T>(t), priority_tag<3>{});
2902
4.94M
    }
_ZNK3scn2v36ranges6detail5size_2fnclIRKNS2_9subrange_8subrangeIPKwS9_EEEEDTclsr2fnE4implclsr3stdE7forwardIT_Efp_EtlNS0_6detail12priority_tagILm3EEEEEEOSD_
Line
Count
Source
2900
40.0M
    {
2901
40.0M
        return fn::impl(std::forward<T>(t), priority_tag<3>{});
2902
40.0M
    }
2903
};
2904
2905
}  // namespace detail::size_
2906
2907
inline constexpr auto size = detail::size_::fn{};
2908
2909
namespace detail {
2910
namespace ssize_ {
2911
struct fn {
2912
private:
2913
    template <typename T>
2914
    using ssize_return_t = std::conditional_t<sizeof(range_difference_t<T>) <
2915
                                                  sizeof(std::ptrdiff_t),
2916
                                              std::ptrdiff_t,
2917
                                              range_difference_t<T>>;
2918
2919
    template <typename T>
2920
    static constexpr auto impl(T&& t) noexcept(
2921
        noexcept(ranges::size(std::forward<T>(t))))
2922
        -> decltype(ranges::size(std::forward<T>(t)), ssize_return_t<T>())
2923
5.20M
    {
2924
5.20M
        return static_cast<ssize_return_t<T>>(ranges::size(std::forward<T>(t)));
2925
5.20M
    }
_ZN3scn2v36ranges6detail6ssize_2fn4implIRNSt3__112basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEEEEDTcmclL_ZNS1_4sizeEEclsr3stdE7forwardIT_Efp_EEcvNS6_11conditionalIXltstNS6_9enable_ifIX5rangeISE_EENS1_20incrementable_traitsIDTclL_ZNS1_5beginEEclsr3stdE7declvalIRSE_EEEEE15difference_typeEE4typeELm8EElSN_E4typeE_EEOSE_
Line
Count
Source
2923
4.59M
    {
2924
4.59M
        return static_cast<ssize_return_t<T>>(ranges::size(std::forward<T>(t)));
2925
4.59M
    }
_ZN3scn2v36ranges6detail6ssize_2fn4implIRKNSt3__117basic_string_viewIcNS6_11char_traitsIcEEEEEEDTcmclL_ZNS1_4sizeEEclsr3stdE7forwardIT_Efp_EEcvNS6_11conditionalIXltstNS6_9enable_ifIX5rangeISD_EENS1_20incrementable_traitsIDTclL_ZNS1_5beginEEclsr3stdE7declvalIRSD_EEEEE15difference_typeEE4typeELm8EElSM_E4typeE_EEOSD_
Line
Count
Source
2923
74
    {
2924
74
        return static_cast<ssize_return_t<T>>(ranges::size(std::forward<T>(t)));
2925
74
    }
_ZN3scn2v36ranges6detail6ssize_2fn4implIRKNSt3__112basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEEEEDTcmclL_ZNS1_4sizeEEclsr3stdE7forwardIT_Efp_EEcvNS6_11conditionalIXltstNS6_9enable_ifIX5rangeISF_EENS1_20incrementable_traitsIDTclL_ZNS1_5beginEEclsr3stdE7declvalIRSF_EEEEE15difference_typeEE4typeELm8EElSO_E4typeE_EEOSF_
Line
Count
Source
2923
610k
    {
2924
610k
        return static_cast<ssize_return_t<T>>(ranges::size(std::forward<T>(t)));
2925
610k
    }
Unexecuted instantiation: _ZN3scn2v36ranges6detail6ssize_2fn4implIRKNSt3__117basic_string_viewIwNS6_11char_traitsIwEEEEEEDTcmclL_ZNS1_4sizeEEclsr3stdE7forwardIT_Efp_EEcvNS6_11conditionalIXltstNS6_9enable_ifIX5rangeISD_EENS1_20incrementable_traitsIDTclL_ZNS1_5beginEEclsr3stdE7declvalIRSD_EEEEE15difference_typeEE4typeELm8EElSM_E4typeE_EEOSD_
2926
2927
public:
2928
    template <typename T>
2929
    constexpr auto operator()(T&& t) const
2930
        noexcept(noexcept(fn::impl(std::forward<T>(t))))
2931
            -> decltype(fn::impl(std::forward<T>(t)))
2932
5.20M
    {
2933
5.20M
        return fn::impl(std::forward<T>(t));
2934
5.20M
    }
_ZNK3scn2v36ranges6detail6ssize_2fnclIRNSt3__112basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEEEEDTclsr2fnE4implclsr3stdE7forwardIT_Efp_EEEOSE_
Line
Count
Source
2932
4.59M
    {
2933
4.59M
        return fn::impl(std::forward<T>(t));
2934
4.59M
    }
_ZNK3scn2v36ranges6detail6ssize_2fnclIRKNSt3__117basic_string_viewIcNS6_11char_traitsIcEEEEEEDTclsr2fnE4implclsr3stdE7forwardIT_Efp_EEEOSD_
Line
Count
Source
2932
74
    {
2933
74
        return fn::impl(std::forward<T>(t));
2934
74
    }
_ZNK3scn2v36ranges6detail6ssize_2fnclIRKNSt3__112basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEEEEDTclsr2fnE4implclsr3stdE7forwardIT_Efp_EEEOSF_
Line
Count
Source
2932
610k
    {
2933
610k
        return fn::impl(std::forward<T>(t));
2934
610k
    }
Unexecuted instantiation: _ZNK3scn2v36ranges6detail6ssize_2fnclIRKNSt3__117basic_string_viewIwNS6_11char_traitsIwEEEEEEDTclsr2fnE4implclsr3stdE7forwardIT_Efp_EEEOSD_
2935
};
2936
}  // namespace ssize_
2937
}  // namespace detail
2938
2939
inline constexpr auto ssize = detail::ssize_::fn{};
2940
2941
namespace detail::empty_ {
2942
struct fn {
2943
private:
2944
    template <typename T>
2945
    static constexpr auto impl(T&& t, priority_tag<2>) noexcept(
2946
        noexcept(static_cast<bool>(SCN_FWD(t).empty())))
2947
        -> decltype(static_cast<bool>(SCN_FWD(t).empty()))
2948
102M
    {
2949
102M
        return static_cast<bool>(SCN_FWD(t).empty());
2950
102M
    }
decltype (static_cast<bool>(((static_cast<decltype ({parm#1})>({parm#1})).empty)())) scn::v3::ranges::detail::empty_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>&>(scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>&, scn::v3::detail::priority_tag<2ul>)
Line
Count
Source
2948
17.5M
    {
2949
17.5M
        return static_cast<bool>(SCN_FWD(t).empty());
2950
17.5M
    }
decltype (static_cast<bool>(((static_cast<decltype ({parm#1})>({parm#1})).empty)())) scn::v3::ranges::detail::empty_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>&>(scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>&, scn::v3::detail::priority_tag<2ul>)
Line
Count
Source
2948
39.7M
    {
2949
39.7M
        return static_cast<bool>(SCN_FWD(t).empty());
2950
39.7M
    }
decltype (static_cast<bool>(((static_cast<decltype ({parm#1})>({parm#1})).empty)())) scn::v3::ranges::detail::empty_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> const&>(scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> const&, scn::v3::detail::priority_tag<2ul>)
Line
Count
Source
2948
4.94M
    {
2949
4.94M
        return static_cast<bool>(SCN_FWD(t).empty());
2950
4.94M
    }
decltype (static_cast<bool>(((static_cast<decltype ({parm#1})>({parm#1})).empty)())) scn::v3::ranges::detail::empty_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> const&>(scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> const&, scn::v3::detail::priority_tag<2ul>)
Line
Count
Source
2948
40.0M
    {
2949
40.0M
        return static_cast<bool>(SCN_FWD(t).empty());
2950
40.0M
    }
2951
2952
    template <typename T>
2953
    static constexpr auto impl(T&& t, priority_tag<1>) noexcept(
2954
        noexcept(ranges::size(SCN_FWD(t)) == 0))
2955
        -> decltype(ranges::size(SCN_FWD(t)) == 0)
2956
    {
2957
        return ranges::size(SCN_FWD(t)) == 0;
2958
    }
2959
2960
    template <typename T,
2961
              typename I = decltype(ranges::begin(std::declval<T>()))>
2962
    static constexpr auto impl(T&& t, priority_tag<0>) noexcept(
2963
        noexcept(ranges::begin(t) == ranges::end(t)))
2964
        -> std::enable_if_t<forward_iterator<I>,
2965
                            decltype(ranges::begin(t) == ranges::end(t))>
2966
    {
2967
        return ranges::begin(t) == ranges::end(t);
2968
    }
2969
2970
public:
2971
    template <typename T>
2972
    constexpr auto operator()(T&& t) const
2973
        noexcept(noexcept(fn::impl(SCN_FWD(t), priority_tag<2>{})))
2974
            -> decltype(fn::impl(SCN_FWD(t), priority_tag<2>{}))
2975
102M
    {
2976
102M
        return fn::impl(SCN_FWD(t), priority_tag<2>{});
2977
102M
    }
_ZNK3scn2v36ranges6detail6empty_2fnclIRNS2_9subrange_8subrangeIPKcS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm2EEEEEEOT_
Line
Count
Source
2975
17.5M
    {
2976
17.5M
        return fn::impl(SCN_FWD(t), priority_tag<2>{});
2977
17.5M
    }
_ZNK3scn2v36ranges6detail6empty_2fnclIRNS2_9subrange_8subrangeIPKwS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm2EEEEEEOT_
Line
Count
Source
2975
39.7M
    {
2976
39.7M
        return fn::impl(SCN_FWD(t), priority_tag<2>{});
2977
39.7M
    }
_ZNK3scn2v36ranges6detail6empty_2fnclIRKNS2_9subrange_8subrangeIPKcS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm2EEEEEEOT_
Line
Count
Source
2975
4.94M
    {
2976
4.94M
        return fn::impl(SCN_FWD(t), priority_tag<2>{});
2977
4.94M
    }
_ZNK3scn2v36ranges6detail6empty_2fnclIRKNS2_9subrange_8subrangeIPKwS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm2EEEEEEOT_
Line
Count
Source
2975
40.0M
    {
2976
40.0M
        return fn::impl(SCN_FWD(t), priority_tag<2>{});
2977
40.0M
    }
2978
};
2979
}  // namespace detail::empty_
2980
2981
inline constexpr auto empty = detail::empty_::fn{};
2982
2983
template <typename T>
2984
inline constexpr bool borrowed_range =
2985
    range<T> && (std::is_lvalue_reference_v<T> ||
2986
                 enable_borrowed_range<detail::remove_cvref_t<T>>);
2987
2988
namespace detail {
2989
struct sized_range_concept {
2990
    template <typename T>
2991
    auto requires_(T& t) -> decltype(ranges::size(t));
2992
};
2993
}  // namespace detail
2994
2995
template <typename T>
2996
inline constexpr bool sized_range =
2997
    range<T> && !disable_sized_range<detail::remove_cvref_t<T>> &&
2998
    detail::requires_<detail::sized_range_concept, T>;
2999
3000
namespace detail {
3001
struct output_range_concept {
3002
    template <typename, typename>
3003
    static auto test(long) -> std::false_type;
3004
3005
    template <typename R, typename T>
3006
    static auto test(int)
3007
        -> std::enable_if_t<range<R> && output_iterator<iterator_t<R>, T>,
3008
                            std::true_type>;
3009
};
3010
}  // namespace detail
3011
3012
template <typename R, typename T>
3013
inline constexpr bool output_range =
3014
    decltype(detail::output_range_concept::test<R, T>(0))::value;
3015
3016
namespace detail {
3017
struct input_range_concept {
3018
    template <typename>
3019
    static auto test(long) -> std::false_type;
3020
3021
    template <typename T>
3022
    static auto test(int)
3023
        -> std::enable_if_t<range<T> && input_iterator<iterator_t<T>>,
3024
                            std::true_type>;
3025
};
3026
}  // namespace detail
3027
3028
template <typename T>
3029
inline constexpr bool input_range =
3030
    decltype(detail::input_range_concept::test<T>(0))::value;
3031
3032
namespace detail {
3033
struct forward_range_concept {
3034
    template <typename>
3035
    static auto test(long) -> std::false_type;
3036
3037
    template <typename T>
3038
    static auto test(int)
3039
        -> std::enable_if_t<input_range<T> && forward_iterator<iterator_t<T>>,
3040
                            std::true_type>;
3041
};
3042
}  // namespace detail
3043
3044
template <typename T>
3045
inline constexpr bool forward_range =
3046
    decltype(detail::forward_range_concept::test<T>(0))::value;
3047
3048
namespace detail {
3049
struct bidirectional_range_concept {
3050
    template <typename>
3051
    static auto test(long) -> std::false_type;
3052
3053
    template <typename T>
3054
    static auto test(int)
3055
        -> std::enable_if_t<forward_range<T> &&
3056
                                bidirectional_iterator<iterator_t<T>>,
3057
                            std::true_type>;
3058
};
3059
}  // namespace detail
3060
3061
template <typename T>
3062
inline constexpr bool bidirectional_range =
3063
    decltype(detail::bidirectional_range_concept::test<T>(0))::value;
3064
3065
namespace detail {
3066
struct random_access_range_concept {
3067
    template <typename>
3068
    static auto test(long) -> std::false_type;
3069
3070
    template <typename T>
3071
    static auto test(int)
3072
        -> std::enable_if_t<bidirectional_range<T> &&
3073
                                random_access_iterator<iterator_t<T>>,
3074
                            std::true_type>;
3075
};
3076
}  // namespace detail
3077
3078
template <typename T>
3079
inline constexpr bool random_access_range =
3080
    decltype(detail::random_access_range_concept::test<T>(0))::value;
3081
3082
namespace detail {
3083
// FIXME: Not to spec
3084
// We only require random_access_iterator, not contiguous_iterator
3085
// This is so that vector::iterator, string::iterator etc can model
3086
// contiguous_range.
3087
// If we do range-v3-style deep integration with iterator_traits then
3088
// this could be fixed
3089
struct contiguous_range_concept {
3090
    template <typename>
3091
    static auto test(long) -> std::false_type;
3092
3093
    template <typename T>
3094
    static auto test(int) -> std::enable_if_t<
3095
        random_access_range<T> && /* contiguous_iterator<iterator_t<T>>
3096
                                   * &&
3097
                                   */
3098
            detail::requires_<contiguous_range_concept, T>,
3099
        std::true_type>;
3100
3101
    template <typename T>
3102
    auto requires_(T& t)
3103
        -> decltype(requires_expr<std::is_same_v<
3104
                        decltype(ranges::data(t)),
3105
                        std::add_pointer_t<range_reference_t<T>>>>{});
3106
};
3107
}  // namespace detail
3108
3109
template <typename R>
3110
inline constexpr bool contiguous_range =
3111
    decltype(detail::contiguous_range_concept::test<R>(0))::value;
3112
3113
namespace detail {
3114
struct common_range_concept {
3115
    template <typename>
3116
    static auto test(long) -> std::false_type;
3117
3118
    template <typename T>
3119
    static auto test(int)
3120
        -> std::enable_if_t<range<T> &&
3121
                                std::is_same_v<iterator_t<T>, sentinel_t<T>>,
3122
                            std::true_type>;
3123
};
3124
}  // namespace detail
3125
3126
template <typename T>
3127
inline constexpr bool common_range =
3128
    decltype(detail::common_range_concept::test<T>(0))::value;
3129
3130
struct dangling {
3131
    constexpr dangling() noexcept = default;
3132
3133
    template <typename... Args>
3134
    constexpr dangling(Args&&...) noexcept
3135
    {
3136
    }
3137
};
3138
3139
template <typename R>
3140
using borrowed_iterator_t =
3141
    std::conditional_t<borrowed_range<R>, iterator_t<R>, dangling>;
3142
3143
template <typename D>
3144
class view_interface {
3145
    static_assert(std::is_class<D>::value, "");
3146
    static_assert(std::is_same_v<D, std::remove_cv_t<D>>, "");
3147
3148
private:
3149
    constexpr D& derived() noexcept
3150
114M
    {
3151
114M
        return static_cast<D&>(*this);
3152
114M
    }
scn::v3::ranges::view_interface<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >::derived()
Line
Count
Source
3150
35.1M
    {
3151
35.1M
        return static_cast<D&>(*this);
3152
35.1M
    }
scn::v3::ranges::view_interface<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::derived()
Line
Count
Source
3150
79.5M
    {
3151
79.5M
        return static_cast<D&>(*this);
3152
79.5M
    }
3153
3154
    constexpr const D& derived() const noexcept
3155
89.8M
    {
3156
89.8M
        return static_cast<const D&>(*this);
3157
89.8M
    }
scn::v3::ranges::view_interface<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >::derived() const
Line
Count
Source
3155
9.85M
    {
3156
9.85M
        return static_cast<const D&>(*this);
3157
9.85M
    }
scn::v3::ranges::view_interface<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::derived() const
Line
Count
Source
3155
80.0M
    {
3156
80.0M
        return static_cast<const D&>(*this);
3157
80.0M
    }
3158
3159
public:
3160
    template <typename R = D>
3161
    [[nodiscard]] constexpr auto empty()
3162
        -> std::enable_if_t<forward_range<R>, bool>
3163
    {
3164
        return ranges::begin(derived()) == ranges::end(derived());
3165
    }
3166
3167
    template <typename R = D>
3168
    [[nodiscard]] constexpr auto empty() const
3169
        -> std::enable_if_t<forward_range<const R>, bool>
3170
    {
3171
        return ranges::begin(derived()) == ranges::end(derived());
3172
    }
3173
3174
    template <typename R = D,
3175
              typename = decltype(ranges::empty(std::declval<R&>()))>
3176
    constexpr explicit operator bool()
3177
    {
3178
        return !ranges::empty(derived());
3179
    }
3180
3181
    template <typename R = D,
3182
              typename = decltype(ranges::empty(std::declval<const R&>()))>
3183
    constexpr explicit operator bool() const
3184
    {
3185
        return !ranges::empty(derived());
3186
    }
3187
3188
    template <typename R = D,
3189
              typename = std::enable_if_t<contiguous_iterator<iterator_t<R>>>>
3190
    constexpr auto data()
3191
57.3M
    {
3192
57.3M
        return ranges::empty(derived())
3193
57.3M
                   ? nullptr
3194
57.3M
                   : std::addressof(*ranges::begin(derived()));
3195
57.3M
    }
auto scn::v3::ranges::view_interface<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >::data<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, void>()
Line
Count
Source
3191
17.5M
    {
3192
17.5M
        return ranges::empty(derived())
3193
17.5M
                   ? nullptr
3194
17.5M
                   : std::addressof(*ranges::begin(derived()));
3195
17.5M
    }
auto scn::v3::ranges::view_interface<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::data<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void>()
Line
Count
Source
3191
39.7M
    {
3192
39.7M
        return ranges::empty(derived())
3193
39.7M
                   ? nullptr
3194
39.7M
                   : std::addressof(*ranges::begin(derived()));
3195
39.7M
    }
3196
3197
    template <typename R = D,
3198
              typename = std::enable_if_t<
3199
                  range<const R> && contiguous_iterator<iterator_t<const R>>>>
3200
    constexpr auto data() const
3201
44.9M
    {
3202
44.9M
        return ranges::empty(derived())
3203
44.9M
                   ? nullptr
3204
44.9M
                   : std::addressof(*ranges::begin(derived()));
3205
44.9M
    }
auto scn::v3::ranges::view_interface<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >::data<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, void>() const
Line
Count
Source
3201
4.94M
    {
3202
4.94M
        return ranges::empty(derived())
3203
4.94M
                   ? nullptr
3204
4.94M
                   : std::addressof(*ranges::begin(derived()));
3205
4.94M
    }
auto scn::v3::ranges::view_interface<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::data<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void>() const
Line
Count
Source
3201
40.0M
    {
3202
40.0M
        return ranges::empty(derived())
3203
40.0M
                   ? nullptr
3204
40.0M
                   : std::addressof(*ranges::begin(derived()));
3205
40.0M
    }
3206
3207
    template <typename R = D,
3208
              typename = std::enable_if_t<
3209
                  forward_range<R> &&
3210
                  sized_sentinel_for<sentinel_t<R>, iterator_t<R>>>>
3211
    constexpr auto size()
3212
    {
3213
        return ranges::end(derived()) - ranges::begin(derived());
3214
    }
3215
3216
    template <typename R = D,
3217
              typename = std::enable_if_t<
3218
                  forward_range<const R> &&
3219
                  sized_sentinel_for<sentinel_t<const R>, iterator_t<const R>>>>
3220
    constexpr auto size() const
3221
    {
3222
        return ranges::end(derived()) - ranges::begin(derived());
3223
    }
3224
3225
#if 0
3226
    template <typename R = D, typename = std::enable_if_t<forward_range<R>>>
3227
    constexpr decltype(auto) front()
3228
    {
3229
        return *ranges::begin(derived());
3230
    }
3231
3232
    template <typename R = D,
3233
              typename = std::enable_if_t<forward_range<const R>>>
3234
    constexpr decltype(auto) front() const
3235
    {
3236
        return *ranges::begin(derived());
3237
    }
3238
3239
    template <
3240
        typename R = D,
3241
        typename = std::enable_if_t<bidirectional_range<R> && common_range<R>>>
3242
    constexpr decltype(auto) back()
3243
    {
3244
        return *ranges::prev(ranges::end(derived()));
3245
    }
3246
3247
    template <typename R = D,
3248
              typename = std::enable_if_t<bidirectional_range<const R> &&
3249
                                          common_range<const R>>>
3250
    constexpr decltype(auto) back() const
3251
    {
3252
        return *ranges::prev(ranges::end(derived()));
3253
    }
3254
3255
    template <typename R = D,
3256
              typename = std::enable_if_t<random_access_range<R>>>
3257
    constexpr decltype(auto) operator[](iter_difference_t<iterator_t<R>> n)
3258
    {
3259
        return ranges::begin(derived())[n];
3260
    }
3261
#endif
3262
3263
    template <typename R = D,
3264
              typename = std::enable_if_t<random_access_range<const R>>>
3265
    constexpr decltype(auto) operator[](
3266
        iter_difference_t<iterator_t<const R>> n) const
3267
    {
3268
        return ranges::begin(derived())[n];
3269
    }
3270
};
3271
3272
namespace detail::subrange_ {
3273
3274
template <typename I, typename S = I>
3275
class subrange : public view_interface<subrange<I, S>> {
3276
    static_assert(input_or_output_iterator<I>);
3277
    static_assert(sentinel_for<S, I>);
3278
3279
public:
3280
    subrange() = default;
3281
3282
    template <typename I_,
3283
              std::enable_if_t<std::is_convertible_v<I_, I>>* = nullptr>
3284
    constexpr subrange(I_ i, S s)
3285
        : m_iterator(SCN_MOVE(i)), m_sentinel(SCN_MOVE(s))
3286
1.25G
    {
3287
1.25G
    }
scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>::subrange<char const*, (void*)0>(char const*, char const*)
Line
Count
Source
3286
45.2M
    {
3287
45.2M
    }
scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>::subrange<wchar_t const*, (void*)0>(wchar_t const*, wchar_t const*)
Line
Count
Source
3286
764M
    {
3287
764M
    }
scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>::subrange<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, (void*)0>(scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t)
Line
Count
Source
3286
47.0M
    {
3287
47.0M
    }
scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>::subrange<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, (void*)0>(scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t)
Line
Count
Source
3286
324M
    {
3287
324M
    }
Unexecuted instantiation: scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >::sentinel<true> >::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, (void*)0>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >::sentinel<true>)
Unexecuted instantiation: scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, (void*)0>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>)
scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::detail::basic_scan_buffer<char>::forward_iterator>::subrange<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, (void*)0>(scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::detail::basic_scan_buffer<char>::forward_iterator)
Line
Count
Source
3286
3.85M
    {
3287
3.85M
    }
Unexecuted instantiation: scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, (void*)0>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true>)
scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, (void*)0>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true>)
Line
Count
Source
3286
155k
    {
3287
155k
    }
scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, (void*)0>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>)
Line
Count
Source
3286
2.02k
    {
3287
2.02k
    }
Unexecuted instantiation: scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >::sentinel<true> >::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, (void*)0>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >::sentinel<true>)
Unexecuted instantiation: scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, (void*)0>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>)
scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>::subrange<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, (void*)0>(scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator)
Line
Count
Source
3286
19.6M
    {
3287
19.6M
    }
Unexecuted instantiation: scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, (void*)0>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true>)
Unexecuted instantiation: scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, (void*)0>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true>)
Unexecuted instantiation: scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, (void*)0>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>)
scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, (void*)0>(std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>)
Line
Count
Source
3286
9.20M
    {
3287
9.20M
    }
scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, (void*)0>(std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>)
Line
Count
Source
3286
40.0M
    {
3287
40.0M
    }
3288
3289
    template <
3290
        typename R,
3291
        std::enable_if_t<is_not_self<R, subrange> && borrowed_range<R> &&
3292
                         std::is_convertible_v<iterator_t<R>, I> &&
3293
                         std::is_convertible_v<sentinel_t<R>, S>>* = nullptr>
3294
    constexpr subrange(R&& r)
3295
        : m_iterator(scn::ranges::begin(r)), m_sentinel(scn::ranges::end(r))
3296
    {
3297
    }
3298
3299
    constexpr I begin() const
3300
3.23G
    {
3301
3.23G
        return m_iterator;
3302
3.23G
    }
scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>::begin() const
Line
Count
Source
3300
168M
    {
3301
168M
        return m_iterator;
3302
168M
    }
scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>::begin() const
Line
Count
Source
3300
954M
    {
3301
954M
        return m_iterator;
3302
954M
    }
scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>::begin() const
Line
Count
Source
3300
98.1M
    {
3301
98.1M
        return m_iterator;
3302
98.1M
    }
scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>::begin() const
Line
Count
Source
3300
1.91G
    {
3301
1.91G
        return m_iterator;
3302
1.91G
    }
Unexecuted instantiation: scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >::sentinel<true> >::begin() const
Unexecuted instantiation: scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >::begin() const
scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::detail::basic_scan_buffer<char>::forward_iterator>::begin() const
Line
Count
Source
3300
6.67M
    {
3301
6.67M
        return m_iterator;
3302
6.67M
    }
Unexecuted instantiation: scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >::begin() const
scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >::begin() const
Line
Count
Source
3300
442k
    {
3301
442k
        return m_iterator;
3302
442k
    }
scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >::begin() const
Line
Count
Source
3300
2.02k
    {
3301
2.02k
        return m_iterator;
3302
2.02k
    }
Unexecuted instantiation: scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >::sentinel<true> >::begin() const
Unexecuted instantiation: scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >::begin() const
scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>::begin() const
Line
Count
Source
3300
19.6M
    {
3301
19.6M
        return m_iterator;
3302
19.6M
    }
Unexecuted instantiation: scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >::begin() const
Unexecuted instantiation: scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >::begin() const
Unexecuted instantiation: scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >::begin() const
scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >::begin() const
Line
Count
Source
3300
13.6M
    {
3301
13.6M
        return m_iterator;
3302
13.6M
    }
scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >::begin() const
Line
Count
Source
3300
59.7M
    {
3301
59.7M
        return m_iterator;
3302
59.7M
    }
3303
    constexpr S end() const
3304
3.84G
    {
3305
3.84G
        return m_sentinel;
3306
3.84G
    }
scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>::end() const
Line
Count
Source
3304
61.6M
    {
3305
61.6M
        return m_sentinel;
3306
61.6M
    }
scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>::end() const
Line
Count
Source
3304
2.36G
    {
3305
2.36G
        return m_sentinel;
3306
2.36G
    }
Unexecuted instantiation: scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >::sentinel<true> >::end() const
scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>::end() const
Line
Count
Source
3304
120M
    {
3305
120M
        return m_sentinel;
3306
120M
    }
Unexecuted instantiation: scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >::end() const
scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::detail::basic_scan_buffer<char>::forward_iterator>::end() const
Line
Count
Source
3304
6.67M
    {
3305
6.67M
        return m_sentinel;
3306
6.67M
    }
Unexecuted instantiation: scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >::end() const
scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >::end() const
Line
Count
Source
3304
275k
    {
3305
275k
        return m_sentinel;
3306
275k
    }
scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >::end() const
Line
Count
Source
3304
2.02k
    {
3305
2.02k
        return m_sentinel;
3306
2.02k
    }
Unexecuted instantiation: scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >::sentinel<true> >::end() const
scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>::end() const
Line
Count
Source
3304
887M
    {
3305
887M
        return m_sentinel;
3306
887M
    }
Unexecuted instantiation: scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >::end() const
scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>::end() const
Line
Count
Source
3304
19.6M
    {
3305
19.6M
        return m_sentinel;
3306
19.6M
    }
Unexecuted instantiation: scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >::end() const
Unexecuted instantiation: scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >::end() const
Unexecuted instantiation: scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >::end() const
scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >::end() const
Line
Count
Source
3304
48.9M
    {
3305
48.9M
        return m_sentinel;
3306
48.9M
    }
scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >::end() const
Line
Count
Source
3304
343M
    {
3305
343M
        return m_sentinel;
3306
343M
    }
3307
3308
    SCN_NODISCARD constexpr bool empty() const
3309
102M
    {
3310
102M
        return m_iterator == m_sentinel;
3311
102M
    }
scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>::empty() const
Line
Count
Source
3309
22.5M
    {
3310
22.5M
        return m_iterator == m_sentinel;
3311
22.5M
    }
scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>::empty() const
Line
Count
Source
3309
79.7M
    {
3310
79.7M
        return m_iterator == m_sentinel;
3311
79.7M
    }
3312
3313
    template <typename I_ = I,
3314
              std::enable_if_t<sized_sentinel_for<S, I_>>* = nullptr>
3315
    constexpr std::size_t size() const
3316
103M
    {
3317
103M
        return static_cast<size_t>(m_sentinel - m_iterator);
3318
103M
    }
unsigned long scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>::size<char const*, (void*)0>() const
Line
Count
Source
3316
22.6M
    {
3317
22.6M
        return static_cast<size_t>(m_sentinel - m_iterator);
3318
22.6M
    }
unsigned long scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>::size<wchar_t const*, (void*)0>() const
Line
Count
Source
3316
80.8M
    {
3317
80.8M
        return static_cast<size_t>(m_sentinel - m_iterator);
3318
80.8M
    }
3319
3320
private:
3321
    SCN_NO_UNIQUE_ADDRESS I m_iterator{};
3322
    SCN_NO_UNIQUE_ADDRESS S m_sentinel{};
3323
};
3324
3325
template <typename I,
3326
          typename S,
3327
          std::enable_if_t<input_or_output_iterator<I> && sentinel_for<S, I>>* =
3328
              nullptr>
3329
subrange(I, S) -> subrange<I, S>;
3330
3331
template <typename R, std::enable_if_t<borrowed_range<R>>* = nullptr>
3332
subrange(R&&) -> subrange<iterator_t<R>, sentinel_t<R>>;
3333
3334
}  // namespace detail::subrange_
3335
3336
using detail::subrange_::subrange;
3337
3338
template <typename I, typename S>
3339
inline constexpr bool enable_borrowed_range<subrange<I, S>> = true;
3340
3341
struct default_sentinel_t {};
3342
inline constexpr default_sentinel_t default_sentinel{};
3343
3344
}  // namespace ranges
3345
3346
namespace detail {
3347
3348
namespace char_t_fn {
3349
template <typename T, typename = typename T::value_type>
3350
constexpr auto impl_nonarray(priority_tag<2>)
3351
0
{
3352
0
    return tag_type<typename T::value_type>{};
3353
0
}
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl_nonarray<std::__1::basic_string_view<char, std::__1::char_traits<char> >, char>(scn::v3::detail::priority_tag<2ul>)
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl_nonarray<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >, wchar_t>(scn::v3::detail::priority_tag<2ul>)
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl_nonarray<scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, char>(scn::v3::detail::priority_tag<2ul>)
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl_nonarray<scn::v3::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >, char>(scn::v3::detail::priority_tag<2ul>)
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl_nonarray<scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >, char>(scn::v3::detail::priority_tag<2ul>)
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl_nonarray<scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, wchar_t>(scn::v3::detail::priority_tag<2ul>)
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl_nonarray<scn::v3::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, wchar_t>(scn::v3::detail::priority_tag<2ul>)
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl_nonarray<scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >, wchar_t>(scn::v3::detail::priority_tag<2ul>)
3354
template <typename T, typename = decltype(SCN_DECLVAL(T&).begin())>
3355
constexpr auto impl_nonarray(priority_tag<1>)
3356
0
{
3357
0
    return tag_type<remove_cvref_t<decltype(*(SCN_DECLVAL(T&).begin()))>>{};
3358
0
}
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl_nonarray<scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::detail::basic_scan_buffer<char>::forward_iterator>(scn::v3::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl_nonarray<scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::detail::basic_scan_buffer<char>::forward_iterator>(scn::v3::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl_nonarray<scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >::sentinel<true> >, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >(scn::v3::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl_nonarray<scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >(scn::v3::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl_nonarray<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, char const*>(scn::v3::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl_nonarray<scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >(scn::v3::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl_nonarray<scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >(scn::v3::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl_nonarray<scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >(scn::v3::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl_nonarray<scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>(scn::v3::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl_nonarray<scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>(scn::v3::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl_nonarray<scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >::sentinel<true> >, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >(scn::v3::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl_nonarray<scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >(scn::v3::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl_nonarray<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t const*>(scn::v3::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl_nonarray<scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >(scn::v3::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl_nonarray<scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >(scn::v3::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl_nonarray<scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >(scn::v3::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl_nonarray<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >(scn::v3::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl_nonarray<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >(scn::v3::detail::priority_tag<1ul>)
3359
template <typename T>
3360
constexpr auto impl_nonarray(priority_tag<0>)
3361
{
3362
    return tag_type<remove_cvref_t<decltype(*begin(SCN_DECLVAL(T&)))>>{};
3363
}
3364
3365
template <typename T,
3366
          typename = std::enable_if_t<ranges::range<remove_cvref_t<T>>>>
3367
constexpr auto impl()
3368
0
{
3369
0
    using T_nocvref = remove_cvref_t<T>;
3370
0
    if constexpr (std::is_array_v<T_nocvref>) {
3371
0
        return tag_type<std::remove_all_extents_t<T_nocvref>>{};
3372
0
    }
3373
0
    else {
3374
0
        return impl_nonarray<T_nocvref>(priority_tag<2>{});
3375
0
    }
3376
0
}
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl<std::__1::basic_string_view<char, std::__1::char_traits<char> >, void>()
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl<std::__1::basic_string_view<char, std::__1::char_traits<char> >&, void>()
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >, void>()
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, void>()
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl<scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, void>()
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl<scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, void>()
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl<scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, void>()
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl<scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >::sentinel<true> >, void>()
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl<scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, void>()
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, void>()
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl<scn::v3::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >, void>()
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl<scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, void>()
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl<scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, void>()
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl<scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >, void>()
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl<scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, void>()
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl<scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, void>()
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl<scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, void>()
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl<scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, void>()
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl<scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >::sentinel<true> >, void>()
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl<scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, void>()
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void>()
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl<scn::v3::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, void>()
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl<scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, void>()
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl<scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, void>()
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl<scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >, void>()
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl<scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, void>()
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, void>()
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, void>()
3377
3378
template <typename Range>
3379
using result = decltype(impl<Range>());
3380
}  // namespace char_t_fn
3381
3382
template <typename Range>
3383
using char_t = typename char_t_fn::result<Range>::type;
3384
3385
template <typename Range, typename = void>
3386
inline constexpr bool is_file_or_narrow_range_impl = false;
3387
template <>
3388
inline constexpr bool is_file_or_narrow_range_impl<std::FILE*, void> = true;
3389
template <typename Range>
3390
inline constexpr bool
3391
    is_file_or_narrow_range_impl<Range,
3392
                                 std::enable_if_t<ranges::range<Range>>> =
3393
        std::is_same_v<char_t<Range>, char>;
3394
3395
template <typename Range>
3396
inline constexpr bool is_file_or_narrow_range =
3397
    is_file_or_narrow_range_impl<remove_cvref_t<Range>>;
3398
3399
template <typename Range, typename = void>
3400
inline constexpr bool is_wide_range = false;
3401
template <typename Range>
3402
inline constexpr bool
3403
    is_wide_range<Range,
3404
                  std::enable_if_t<ranges::range<remove_cvref_t<Range>>>> =
3405
        std::is_same_v<char_t<Range>, wchar_t>;
3406
3407
template <typename R, bool Borrowed = ranges::borrowed_range<R>>
3408
struct borrowed_tail_subrange {
3409
    using type = ranges::subrange<ranges::iterator_t<R>, ranges::sentinel_t<R>>;
3410
};
3411
template <typename R>
3412
struct borrowed_tail_subrange<R, false> {
3413
    using type = ranges::dangling;
3414
};
3415
3416
/// Equivalent to
3417
/// `ranges::subrange<ranges::iterator_t<R>,
3418
/// ranges::sentinel_t<R>>` if `R` is a `borrowed_range`, and
3419
/// `ranges::dangling` otherwise.
3420
///
3421
/// Similar to `ranges::borrowed_subrange_t<R>`, expect this preserves
3422
/// the range sentinel.
3423
template <typename R>
3424
using borrowed_tail_subrange_t = typename borrowed_tail_subrange<R>::type;
3425
3426
}  // namespace detail
3427
3428
namespace ranges {
3429
template <typename CharT, typename Traits>
3430
inline constexpr bool
3431
    enable_borrowed_range<std::basic_string_view<CharT, Traits>> = true;
3432
}
3433
3434
/////////////////////////////////////////////////////////////////
3435
// Small generic algorithms
3436
/////////////////////////////////////////////////////////////////
3437
3438
namespace detail {
3439
3440
/**
3441
 * Implementation of `std::min_element` without including `<algorithm>`
3442
 */
3443
template <typename It>
3444
constexpr It min_element(It first, It last)
3445
{
3446
    if (first == last) {
3447
        return last;
3448
    }
3449
3450
    It smallest = first;
3451
    ++first;
3452
    for (; first != last; ++first) {
3453
        if (*first < *smallest) {
3454
            smallest = first;
3455
        }
3456
    }
3457
    return smallest;
3458
}
3459
3460
/**
3461
 * Implementation of `std::min` without including `<algorithm>`
3462
 */
3463
template <typename T>
3464
constexpr T min(T a, T b) noexcept
3465
{
3466
    return (b < a) ? b : a;
3467
}
3468
3469
template <bool IsConstexpr, typename T, typename Ptr = const T*>
3470
constexpr Ptr find(Ptr first, Ptr last, T value)
3471
{
3472
    for (; first != last; ++first) {
3473
        if (*first == value) {
3474
            return first;
3475
        }
3476
    }
3477
    return last;
3478
}
3479
3480
template <>
3481
inline const char* find<false, char>(const char* first,
3482
                                     const char* last,
3483
                                     char value)
3484
0
{
3485
0
    auto ptr = static_cast<const char*>(
3486
0
        std::memchr(first, value, static_cast<size_t>(last - first)));
3487
0
    return ptr != nullptr ? ptr : last;
3488
0
}
3489
3490
}  // namespace detail
3491
3492
/////////////////////////////////////////////////////////////////
3493
// Errors
3494
/////////////////////////////////////////////////////////////////
3495
3496
/**
3497
 * Error class.
3498
 * Used as a return value for functions without a success value.
3499
 *
3500
 * \ingroup result
3501
 */
3502
class SCN_TRIVIAL_ABI scan_error {
3503
public:
3504
    /// Error code
3505
    enum code {
3506
        /// No error
3507
        good = 0,
3508
        /// EOF
3509
        end_of_range,
3510
        /// Format string was invalid
3511
        invalid_format_string,
3512
        /// Scanned value was invalid for given type.
3513
        /// e.g. a period '.' when scanning for an int
3514
        invalid_scanned_value,
3515
        /// Scanned value was out of range for the desired type.
3516
        /// (e.g. `>2^32` for an `uint32_t`)
3517
        value_out_of_range,
3518
3519
        max_error
3520
    };
3521
3522
private:
3523
    using code_t = code;
3524
3525
public:
3526
    struct success_tag_t {};
3527
    static constexpr success_tag_t success_tag() noexcept
3528
0
    {
3529
0
        return {};
3530
0
    }
3531
3532
    /// Constructs an error with `code::good` and no message.
3533
167M
    constexpr scan_error() noexcept = default;
3534
0
    constexpr scan_error(success_tag_t) noexcept : scan_error() {}
3535
3536
    /// Constructs an error with `c` and `m`
3537
    constexpr scan_error(code_t c, const char* m) noexcept : m_msg(m), m_code(c)
3538
8.25M
    {
3539
8.25M
        SCN_UNLIKELY_ATTR SCN_UNUSED(m_code);
3540
8.25M
    }
3541
3542
    /// Evaluated to true if there was no error
3543
    constexpr explicit operator bool() const noexcept
3544
234M
    {
3545
234M
        return m_code == good;
3546
234M
    }
3547
3548
    constexpr explicit operator code_t() const noexcept
3549
0
    {
3550
0
        return m_code;
3551
0
    }
3552
3553
    /// Get error code
3554
    SCN_NODISCARD constexpr code_t code() const noexcept
3555
1.51M
    {
3556
1.51M
        return m_code;
3557
1.51M
    }
3558
    /// Get error message
3559
    SCN_NODISCARD constexpr auto msg() const noexcept -> const char*
3560
0
    {
3561
0
        return m_msg;
3562
0
    }
3563
3564
private:
3565
    const char* m_msg{nullptr};
3566
    code_t m_code{good};
3567
};
3568
3569
constexpr inline bool operator==(scan_error a, scan_error b) noexcept
3570
0
{
3571
0
    return a.code() == b.code();
3572
0
}
3573
constexpr inline bool operator!=(scan_error a, scan_error b) noexcept
3574
0
{
3575
0
    return !(a == b);
3576
0
}
3577
3578
constexpr inline bool operator==(scan_error a, enum scan_error::code b) noexcept
3579
1.51M
{
3580
1.51M
    return a.code() == b;
3581
1.51M
}
3582
constexpr inline bool operator!=(scan_error a, enum scan_error::code b) noexcept
3583
1.51M
{
3584
1.51M
    return !(a == b);
3585
1.51M
}
3586
3587
constexpr inline bool operator==(enum scan_error::code a, scan_error b) noexcept
3588
0
{
3589
0
    return a == b.code();
3590
0
}
3591
constexpr inline bool operator!=(enum scan_error::code a, scan_error b) noexcept
3592
0
{
3593
0
    return !(a == b);
3594
0
}
3595
3596
namespace detail {
3597
// Intentionally not constexpr, to give out a compile-time error
3598
scan_error handle_error(scan_error e);
3599
}  // namespace detail
3600
3601
/**
3602
 * An `expected<T, scan_error>`.
3603
 *
3604
 * Not a type alias to shorten template names
3605
 *
3606
 * \ingroup result
3607
 */
3608
template <typename T>
3609
struct scan_expected : public expected<T, scan_error> {
3610
    using expected<T, scan_error>::expected;
3611
3612
    scan_expected(const expected<T, scan_error>& other)
3613
        : expected<T, scan_error>(other)
3614
    {
3615
    }
3616
    scan_expected(expected<T, scan_error>&& other)
3617
        : expected<T, scan_error>(SCN_MOVE(other))
3618
7.36M
    {
3619
7.36M
    }
Unexecuted instantiation: scn::v3::scan_expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >::scan_expected(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error>&&)
scn::v3::scan_expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >::scan_expected(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::scan_error>&&)
Line
Count
Source
3618
1.86k
    {
3619
1.86k
    }
scn::v3::scan_expected<char const*>::scan_expected(scn::v3::expected<char const*, scn::v3::scan_error>&&)
Line
Count
Source
3618
2.24M
    {
3619
2.24M
    }
scn::v3::scan_expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>::scan_expected(scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::scan_error>&&)
Line
Count
Source
3618
3.91M
    {
3619
3.91M
    }
Unexecuted instantiation: scn::v3::scan_expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >::scan_expected(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error>&&)
Unexecuted instantiation: scn::v3::scan_expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >::scan_expected(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::scan_error>&&)
scn::v3::scan_expected<wchar_t const*>::scan_expected(scn::v3::expected<wchar_t const*, scn::v3::scan_error>&&)
Line
Count
Source
3618
392k
    {
3619
392k
    }
scn::v3::scan_expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>::scan_expected(scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::scan_error>&&)
Line
Count
Source
3618
810k
    {
3619
810k
    }
3620
};
3621
3622
template <typename... Args>
3623
auto unexpected_scan_error(Args&&... args)
3624
914k
{
3625
914k
    return unexpected(scan_error{SCN_FWD(args)...});
3626
914k
}
Unexecuted instantiation: auto scn::v3::unexpected_scan_error<scn::v3::scan_error::code, char const (&) [74]>(scn::v3::scan_error::code&&, char const (&) [74])
auto scn::v3::unexpected_scan_error<scn::v3::scan_error::code, char const (&) [41]>(scn::v3::scan_error::code&&, char const (&) [41])
Line
Count
Source
3624
126k
{
3625
126k
    return unexpected(scan_error{SCN_FWD(args)...});
3626
126k
}
auto scn::v3::unexpected_scan_error<scn::v3::scan_error::code, char const (&) [51]>(scn::v3::scan_error::code&&, char const (&) [51])
Line
Count
Source
3624
64.5k
{
3625
64.5k
    return unexpected(scan_error{SCN_FWD(args)...});
3626
64.5k
}
Unexecuted instantiation: auto scn::v3::unexpected_scan_error<scn::v3::scan_error::code, char const (&) [37]>(scn::v3::scan_error::code&&, char const (&) [37])
auto scn::v3::unexpected_scan_error<scn::v3::scan_error::code, char const (&) [20]>(scn::v3::scan_error::code&&, char const (&) [20])
Line
Count
Source
3624
1.30k
{
3625
1.30k
    return unexpected(scan_error{SCN_FWD(args)...});
3626
1.30k
}
auto scn::v3::unexpected_scan_error<scn::v3::scan_error::code, char const (&) [35]>(scn::v3::scan_error::code&&, char const (&) [35])
Line
Count
Source
3624
13.8k
{
3625
13.8k
    return unexpected(scan_error{SCN_FWD(args)...});
3626
13.8k
}
Unexecuted instantiation: auto scn::v3::unexpected_scan_error<scn::v3::scan_error::code, char const (&) [34]>(scn::v3::scan_error::code&&, char const (&) [34])
Unexecuted instantiation: auto scn::v3::unexpected_scan_error<scn::v3::scan_error::code, char const (&) [31]>(scn::v3::scan_error::code&&, char const (&) [31])
auto scn::v3::unexpected_scan_error<scn::v3::scan_error::code, char const (&) [38]>(scn::v3::scan_error::code&&, char const (&) [38])
Line
Count
Source
3624
33.2k
{
3625
33.2k
    return unexpected(scan_error{SCN_FWD(args)...});
3626
33.2k
}
auto scn::v3::unexpected_scan_error<scn::v3::scan_error::code, char const (&) [14]>(scn::v3::scan_error::code&&, char const (&) [14])
Line
Count
Source
3624
5.85k
{
3625
5.85k
    return unexpected(scan_error{SCN_FWD(args)...});
3626
5.85k
}
auto scn::v3::unexpected_scan_error<scn::v3::scan_error::code, char const (&) [32]>(scn::v3::scan_error::code&&, char const (&) [32])
Line
Count
Source
3624
2.85k
{
3625
2.85k
    return unexpected(scan_error{SCN_FWD(args)...});
3626
2.85k
}
auto scn::v3::unexpected_scan_error<scn::v3::scan_error::code, char const (&) [36]>(scn::v3::scan_error::code&&, char const (&) [36])
Line
Count
Source
3624
156
{
3625
156
    return unexpected(scan_error{SCN_FWD(args)...});
3626
156
}
Unexecuted instantiation: auto scn::v3::unexpected_scan_error<scn::v3::scan_error::code, char const (&) [59]>(scn::v3::scan_error::code&&, char const (&) [59])
auto scn::v3::unexpected_scan_error<scn::v3::scan_error::code, char const (&) [52]>(scn::v3::scan_error::code&&, char const (&) [52])
Line
Count
Source
3624
360
{
3625
360
    return unexpected(scan_error{SCN_FWD(args)...});
3626
360
}
Unexecuted instantiation: auto scn::v3::unexpected_scan_error<scn::v3::scan_error::code, char const (&) [66]>(scn::v3::scan_error::code&&, char const (&) [66])
Unexecuted instantiation: auto scn::v3::unexpected_scan_error<scn::v3::scan_error::code, char const (&) [77]>(scn::v3::scan_error::code&&, char const (&) [77])
auto scn::v3::unexpected_scan_error<scn::v3::scan_error::code, char const (&) [40]>(scn::v3::scan_error::code&&, char const (&) [40])
Line
Count
Source
3624
5.80k
{
3625
5.80k
    return unexpected(scan_error{SCN_FWD(args)...});
3626
5.80k
}
Unexecuted instantiation: auto scn::v3::unexpected_scan_error<scn::v3::scan_error::code, char const (&) [42]>(scn::v3::scan_error::code&&, char const (&) [42])
auto scn::v3::unexpected_scan_error<scn::v3::scan_error::code, char const (&) [47]>(scn::v3::scan_error::code&&, char const (&) [47])
Line
Count
Source
3624
21.4k
{
3625
21.4k
    return unexpected(scan_error{SCN_FWD(args)...});
3626
21.4k
}
auto scn::v3::unexpected_scan_error<scn::v3::scan_error::code, char const (&) [23]>(scn::v3::scan_error::code&&, char const (&) [23])
Line
Count
Source
3624
24
{
3625
24
    return unexpected(scan_error{SCN_FWD(args)...});
3626
24
}
Unexecuted instantiation: auto scn::v3::unexpected_scan_error<scn::v3::scan_error::code, char const (&) [19]>(scn::v3::scan_error::code&&, char const (&) [19])
Unexecuted instantiation: auto scn::v3::unexpected_scan_error<scn::v3::scan_error::code, char const (&) [70]>(scn::v3::scan_error::code&&, char const (&) [70])
auto scn::v3::unexpected_scan_error<scn::v3::scan_error::code, char const (&) [22]>(scn::v3::scan_error::code&&, char const (&) [22])
Line
Count
Source
3624
411k
{
3625
411k
    return unexpected(scan_error{SCN_FWD(args)...});
3626
411k
}
auto scn::v3::unexpected_scan_error<scn::v3::scan_error::code, char const (&) [29]>(scn::v3::scan_error::code&&, char const (&) [29])
Line
Count
Source
3624
170k
{
3625
170k
    return unexpected(scan_error{SCN_FWD(args)...});
3626
170k
}
auto scn::v3::unexpected_scan_error<scn::v3::scan_error::code, char const (&) [17]>(scn::v3::scan_error::code&&, char const (&) [17])
Line
Count
Source
3624
56.2k
{
3625
56.2k
    return unexpected(scan_error{SCN_FWD(args)...});
3626
56.2k
}
3627
3628
namespace detail {
3629
template <typename T>
3630
struct is_expected_impl<scan_expected<T>> : std::true_type {};
3631
}  // namespace detail
3632
3633
4.18M
#define SCN_TRY_IMPL_CONCAT(a, b)  a##b
3634
4.18M
#define SCN_TRY_IMPL_CONCAT2(a, b) SCN_TRY_IMPL_CONCAT(a, b)
3635
4.18M
#define SCN_TRY_TMP                SCN_TRY_IMPL_CONCAT2(_scn_try_tmp_, __LINE__)
3636
3637
#define SCN_TRY_ASSIGN(init, x)                        \
3638
265M
    auto&& SCN_TRY_TMP = (x);                          \
Unexecuted instantiation: _ZZN3scn2v34impl12float_readerIcE16read_source_implINS1_15take_width_viewINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS6_18default_sentinel_tEEEEEEENS0_13scan_expectedIDTclL_ZNS6_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESK_ENKUlRKSK_E0_clINS9_INS1_27counted_width_iterator_impl22counted_width_iteratorISD_SE_EENSG_8sentinelILb1EEEEEEEDaSR_
Unexecuted instantiation: _ZZN3scn2v34impl12float_readerIcE16read_source_implINS1_15take_width_viewINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS6_18default_sentinel_tEEEEEEENS0_13scan_expectedIDTclL_ZNS6_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESK_ENKUlRKSK_E_clINS9_INS1_27counted_width_iterator_impl22counted_width_iteratorISD_SE_EENSG_8sentinelILb1EEEEEEEDaSR_
_ZZN3scn2v34impl12float_readerIcE16read_source_implINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS5_18default_sentinel_tEEEEENS0_13scan_expectedIDTclL_ZNS5_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESI_ENKUlRKSI_E0_clISE_EEDaSP_
Line
Count
Source
3638
572k
    auto&& SCN_TRY_TMP = (x);                          \
_ZZN3scn2v34impl12float_readerIcE16read_source_implINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS5_18default_sentinel_tEEEEENS0_13scan_expectedIDTclL_ZNS5_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESI_ENKUlRKSI_E_clISE_EEDaSP_
Line
Count
Source
3638
1.01M
    auto&& SCN_TRY_TMP = (x);                          \
_ZZN3scn2v34impl12float_readerIcE16read_source_implINS1_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIPKcSB_EEEEEENS0_13scan_expectedIDTclL_ZNS6_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESH_ENKUlRKSH_E0_clINS9_INS1_27counted_width_iterator_impl22counted_width_iteratorISB_SB_EENSD_8sentinelILb1EEEEEEEDaSO_
Line
Count
Source
3638
2
    auto&& SCN_TRY_TMP = (x);                          \
_ZZN3scn2v34impl12float_readerIcE16read_source_implINS1_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIPKcSB_EEEEEENS0_13scan_expectedIDTclL_ZNS6_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESH_ENKUlRKSH_E_clINS9_INS1_27counted_width_iterator_impl22counted_width_iteratorISB_SB_EENSD_8sentinelILb1EEEEEEEDaSO_
Line
Count
Source
3638
352
    auto&& SCN_TRY_TMP = (x);                          \
Unexecuted instantiation: _ZZN3scn2v34impl12float_readerIcE16read_source_implINS0_6ranges6detail9subrange_8subrangeIPKcSA_EEEENS0_13scan_expectedIDTclL_ZNS5_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESF_ENKUlRKSF_E0_clISB_EEDaSM_
Unexecuted instantiation: _ZZN3scn2v34impl12float_readerIcE16read_source_implINS0_6ranges6detail9subrange_8subrangeIPKcSA_EEEENS0_13scan_expectedIDTclL_ZNS5_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESF_ENKUlRKSF_E_clISB_EEDaSM_
Unexecuted instantiation: _ZZN3scn2v34impl12float_readerIwE16read_source_implINS1_15take_width_viewINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS6_18default_sentinel_tEEEEEEENS0_13scan_expectedIDTclL_ZNS6_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESK_ENKUlRKSK_E0_clINS9_INS1_27counted_width_iterator_impl22counted_width_iteratorISD_SE_EENSG_8sentinelILb1EEEEEEEDaSR_
Unexecuted instantiation: _ZZN3scn2v34impl12float_readerIwE16read_source_implINS1_15take_width_viewINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS6_18default_sentinel_tEEEEEEENS0_13scan_expectedIDTclL_ZNS6_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESK_ENKUlRKSK_E_clINS9_INS1_27counted_width_iterator_impl22counted_width_iteratorISD_SE_EENSG_8sentinelILb1EEEEEEEDaSR_
_ZZN3scn2v34impl12float_readerIwE16read_source_implINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS5_18default_sentinel_tEEEEENS0_13scan_expectedIDTclL_ZNS5_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESI_ENKUlRKSI_E0_clISE_EEDaSP_
Line
Count
Source
3638
44.2k
    auto&& SCN_TRY_TMP = (x);                          \
_ZZN3scn2v34impl12float_readerIwE16read_source_implINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS5_18default_sentinel_tEEEEENS0_13scan_expectedIDTclL_ZNS5_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESI_ENKUlRKSI_E_clISE_EEDaSP_
Line
Count
Source
3638
109k
    auto&& SCN_TRY_TMP = (x);                          \
Unexecuted instantiation: _ZZN3scn2v34impl12float_readerIwE16read_source_implINS1_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIPKwSB_EEEEEENS0_13scan_expectedIDTclL_ZNS6_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESH_ENKUlRKSH_E0_clINS9_INS1_27counted_width_iterator_impl22counted_width_iteratorISB_SB_EENSD_8sentinelILb1EEEEEEEDaSO_
Unexecuted instantiation: _ZZN3scn2v34impl12float_readerIwE16read_source_implINS1_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIPKwSB_EEEEEENS0_13scan_expectedIDTclL_ZNS6_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESH_ENKUlRKSH_E_clINS9_INS1_27counted_width_iterator_impl22counted_width_iteratorISB_SB_EENSD_8sentinelILb1EEEEEEEDaSO_
Unexecuted instantiation: _ZZN3scn2v34impl12float_readerIwE16read_source_implINS0_6ranges6detail9subrange_8subrangeIPKwSA_EEEENS0_13scan_expectedIDTclL_ZNS5_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESF_ENKUlRKSF_E0_clISB_EEDaSM_
Unexecuted instantiation: _ZZN3scn2v34impl12float_readerIwE16read_source_implINS0_6ranges6detail9subrange_8subrangeIPKwSA_EEEENS0_13scan_expectedIDTclL_ZNS5_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESF_ENKUlRKSF_E_clISB_EEDaSM_
3639
265M
    if (SCN_UNLIKELY(!SCN_TRY_TMP)) {                  \
3640
4.18M
        return ::scn::unexpected(SCN_TRY_TMP.error()); \
3641
4.18M
    }                                                  \
3642
265M
    init = *SCN_FWD(SCN_TRY_TMP);
3643
229M
#define SCN_TRY(name, x) SCN_TRY_ASSIGN(auto name, x)
3644
3645
#define SCN_TRY_ERR(name, x)          \
3646
    auto&& SCN_TRY_TMP = (x);         \
3647
    if (SCN_UNLIKELY(!SCN_TRY_TMP)) { \
3648
        return SCN_TRY_TMP.error();   \
3649
    }                                 \
3650
    auto name = *SCN_FWD(SCN_TRY_TMP);
3651
3652
/////////////////////////////////////////////////////////////////
3653
// string_view utilities
3654
/////////////////////////////////////////////////////////////////
3655
3656
namespace detail {
3657
3658
template <typename T>
3659
struct is_string_view : std::false_type {};
3660
template <typename CharT, typename Traits>
3661
struct is_string_view<std::basic_string_view<CharT, Traits>> : std::true_type {
3662
};
3663
3664
// workarounds for MSVC string_view debug iterators
3665
template <typename CharT>
3666
constexpr std::basic_string_view<CharT> make_string_view_from_iterators(
3667
    typename std::basic_string_view<CharT>::iterator first,
3668
    typename std::basic_string_view<CharT>::iterator last)
3669
469M
{
3670
469M
    if constexpr (std::is_constructible_v<std::basic_string_view<CharT>,
3671
469M
                                          decltype(first), decltype(last)> &&
3672
469M
                  !SCN_MSVC_DEBUG_ITERATORS) {
3673
469M
        return {first, last};
3674
469M
    }
3675
469M
    else {
3676
469M
        return {to_address(first), static_cast<size_t>(std::distance(
3677
469M
                                       to_address(first), to_address(last)))};
3678
469M
    }
3679
469M
}
std::__1::basic_string_view<char, std::__1::char_traits<char> > scn::v3::detail::make_string_view_from_iterators<char>(std::__1::basic_string_view<char, std::__1::char_traits<char> >::iterator, std::__1::basic_string_view<char, std::__1::char_traits<char> >::iterator)
Line
Count
Source
3669
22.4M
{
3670
22.4M
    if constexpr (std::is_constructible_v<std::basic_string_view<CharT>,
3671
22.4M
                                          decltype(first), decltype(last)> &&
3672
22.4M
                  !SCN_MSVC_DEBUG_ITERATORS) {
3673
22.4M
        return {first, last};
3674
22.4M
    }
3675
22.4M
    else {
3676
22.4M
        return {to_address(first), static_cast<size_t>(std::distance(
3677
22.4M
                                       to_address(first), to_address(last)))};
3678
22.4M
    }
3679
22.4M
}
std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > scn::v3::detail::make_string_view_from_iterators<wchar_t>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >::iterator, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >::iterator)
Line
Count
Source
3669
446M
{
3670
446M
    if constexpr (std::is_constructible_v<std::basic_string_view<CharT>,
3671
446M
                                          decltype(first), decltype(last)> &&
3672
446M
                  !SCN_MSVC_DEBUG_ITERATORS) {
3673
446M
        return {first, last};
3674
446M
    }
3675
446M
    else {
3676
446M
        return {to_address(first), static_cast<size_t>(std::distance(
3677
446M
                                       to_address(first), to_address(last)))};
3678
446M
    }
3679
446M
}
3680
3681
template <typename CharT>
3682
constexpr std::basic_string_view<CharT> make_string_view_from_pointers(
3683
    const CharT* first,
3684
    const CharT* last)
3685
333M
{
3686
333M
    if constexpr (std::is_constructible_v<std::basic_string_view<CharT>,
3687
333M
                                          const CharT*, const CharT*>) {
3688
333M
        return {first, last};
3689
333M
    }
3690
333M
    else {
3691
333M
        return {first, static_cast<size_t>(std::distance(first, last))};
3692
333M
    }
3693
333M
}
std::__1::basic_string_view<char, std::__1::char_traits<char> > scn::v3::detail::make_string_view_from_pointers<char>(char const*, char const*)
Line
Count
Source
3685
5.40M
{
3686
5.40M
    if constexpr (std::is_constructible_v<std::basic_string_view<CharT>,
3687
5.40M
                                          const CharT*, const CharT*>) {
3688
5.40M
        return {first, last};
3689
5.40M
    }
3690
5.40M
    else {
3691
5.40M
        return {first, static_cast<size_t>(std::distance(first, last))};
3692
5.40M
    }
3693
5.40M
}
std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > scn::v3::detail::make_string_view_from_pointers<wchar_t>(wchar_t const*, wchar_t const*)
Line
Count
Source
3685
328M
{
3686
328M
    if constexpr (std::is_constructible_v<std::basic_string_view<CharT>,
3687
328M
                                          const CharT*, const CharT*>) {
3688
328M
        return {first, last};
3689
328M
    }
3690
328M
    else {
3691
328M
        return {first, static_cast<size_t>(std::distance(first, last))};
3692
328M
    }
3693
328M
}
3694
3695
template <typename CharT>
3696
constexpr auto make_string_view_iterator(
3697
    std::basic_string_view<CharT> sv,
3698
    typename std::basic_string_view<CharT>::iterator it) ->
3699
    typename std::basic_string_view<CharT>::iterator
3700
29.1M
{
3701
29.1M
    if constexpr (std::is_constructible_v<
3702
29.1M
                      typename std::basic_string_view<CharT>::iterator,
3703
29.1M
                      decltype(it)> &&
3704
29.1M
                  !SCN_MSVC_DEBUG_ITERATORS) {
3705
29.1M
        SCN_UNUSED(sv);
3706
29.1M
        return it;
3707
29.1M
    }
3708
29.1M
    else {
3709
29.1M
        return sv.begin() + std::distance(sv.data(), detail::to_address(it));
3710
29.1M
    }
3711
29.1M
}
std::__1::basic_string_view<char, std::__1::char_traits<char> >::iterator scn::v3::detail::make_string_view_iterator<char>(std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >::iterator)
Line
Count
Source
3700
29.1M
{
3701
29.1M
    if constexpr (std::is_constructible_v<
3702
29.1M
                      typename std::basic_string_view<CharT>::iterator,
3703
29.1M
                      decltype(it)> &&
3704
29.1M
                  !SCN_MSVC_DEBUG_ITERATORS) {
3705
29.1M
        SCN_UNUSED(sv);
3706
29.1M
        return it;
3707
29.1M
    }
3708
29.1M
    else {
3709
29.1M
        return sv.begin() + std::distance(sv.data(), detail::to_address(it));
3710
29.1M
    }
3711
29.1M
}
std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >::iterator scn::v3::detail::make_string_view_iterator<wchar_t>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >::iterator)
Line
Count
Source
3700
7.14k
{
3701
7.14k
    if constexpr (std::is_constructible_v<
3702
7.14k
                      typename std::basic_string_view<CharT>::iterator,
3703
7.14k
                      decltype(it)> &&
3704
7.14k
                  !SCN_MSVC_DEBUG_ITERATORS) {
3705
7.14k
        SCN_UNUSED(sv);
3706
7.14k
        return it;
3707
7.14k
    }
3708
7.14k
    else {
3709
7.14k
        return sv.begin() + std::distance(sv.data(), detail::to_address(it));
3710
7.14k
    }
3711
7.14k
}
3712
3713
template <typename CharT>
3714
constexpr auto make_string_view_iterator_from_pointer(
3715
    std::basic_string_view<CharT> sv,
3716
    const CharT* ptr) -> typename std::basic_string_view<CharT>::iterator
3717
{
3718
    if constexpr (std::is_constructible_v<
3719
                      typename std::basic_string_view<CharT>::iterator,
3720
                      const CharT*> &&
3721
                  !SCN_MSVC_DEBUG_ITERATORS) {
3722
        SCN_UNUSED(sv);
3723
        return ptr;
3724
    }
3725
    else {
3726
        return sv.begin() + std::distance(sv.data(), ptr);
3727
    }
3728
}
3729
3730
/////////////////////////////////////////////////////////////////
3731
// Lightweight Unicode facilities
3732
/////////////////////////////////////////////////////////////////
3733
3734
constexpr inline bool is_ascii_code_point(char32_t cp)
3735
0
{
3736
0
    return cp <= 0x7f;
3737
0
}
3738
3739
template <typename U8>
3740
constexpr std::size_t utf8_code_point_length_by_starting_code_unit(U8 ch)
3741
22.5M
{
3742
22.5M
    static_assert(sizeof(U8) == 1);
3743
3744
22.5M
    SCN_GCC_COMPAT_PUSH
3745
22.5M
    SCN_GCC_COMPAT_IGNORE("-Wsign-conversion")
3746
22.5M
    constexpr char lengths[] =
3747
22.5M
        "\1\1\1\1\1\1\1\1"  // highest bit is 0 -> single-byte
3748
22.5M
        "\1\1\1\1\1\1\1\1"
3749
22.5M
        "\0\0\0\0\0\0\0\0"  // highest bits 10 -> error, non-initial
3750
                            // byte
3751
22.5M
        "\2\2\2\2"          // highest bits 110 -> 2-byte cp
3752
22.5M
        "\3\3"              // highest bits 1110 -> 3-byte cp
3753
22.5M
        "\4";               // highest bits 11110 -> 4-byte cp
3754
22.5M
    return lengths[static_cast<unsigned char>(ch) >> 3];
3755
22.5M
    SCN_GCC_COMPAT_POP
3756
22.5M
}
3757
3758
template <typename U16>
3759
constexpr std::size_t utf16_code_point_length_by_starting_code_unit(U16 ch)
3760
{
3761
    static_assert(sizeof(U16) == 2);
3762
3763
    const auto lead = static_cast<uint16_t>(0xffff & ch);
3764
    if (lead >= 0xd800 && lead <= 0xdbff) {
3765
        // high surrogate
3766
        return 2;
3767
    }
3768
    if (lead >= 0xdc00 && lead <= 0xdfff) {
3769
        // unpaired low surrogate
3770
        return 0;
3771
    }
3772
    return 1;
3773
}
3774
3775
template <typename U>
3776
constexpr std::size_t code_point_length_by_starting_code_unit(U ch)
3777
1.45G
{
3778
1.45G
    if constexpr (sizeof(U) == 1) {
3779
1.43G
        return utf8_code_point_length_by_starting_code_unit(ch);
3780
1.43G
    }
3781
1.43G
    else if constexpr (sizeof(U) == 2) {
3782
1.43G
        return utf16_code_point_length_by_starting_code_unit(ch);
3783
1.43G
    }
3784
1.43G
    else {
3785
        // utf-32
3786
1.43G
        static_assert(sizeof(U) == 4);
3787
1.43G
        SCN_UNUSED(ch);
3788
1.43G
        return 1;
3789
1.43G
    }
3790
1.45G
}
unsigned long scn::v3::detail::code_point_length_by_starting_code_unit<char>(char)
Line
Count
Source
3777
22.5M
{
3778
22.5M
    if constexpr (sizeof(U) == 1) {
3779
22.5M
        return utf8_code_point_length_by_starting_code_unit(ch);
3780
22.5M
    }
3781
22.5M
    else if constexpr (sizeof(U) == 2) {
3782
22.5M
        return utf16_code_point_length_by_starting_code_unit(ch);
3783
22.5M
    }
3784
22.5M
    else {
3785
        // utf-32
3786
22.5M
        static_assert(sizeof(U) == 4);
3787
22.5M
        SCN_UNUSED(ch);
3788
22.5M
        return 1;
3789
22.5M
    }
3790
22.5M
}
unsigned long scn::v3::detail::code_point_length_by_starting_code_unit<wchar_t>(wchar_t)
Line
Count
Source
3777
1.43G
{
3778
1.43G
    if constexpr (sizeof(U) == 1) {
3779
1.43G
        return utf8_code_point_length_by_starting_code_unit(ch);
3780
1.43G
    }
3781
1.43G
    else if constexpr (sizeof(U) == 2) {
3782
1.43G
        return utf16_code_point_length_by_starting_code_unit(ch);
3783
1.43G
    }
3784
1.43G
    else {
3785
        // utf-32
3786
1.43G
        static_assert(sizeof(U) == 4);
3787
1.43G
        SCN_UNUSED(ch);
3788
1.43G
        return 1;
3789
1.43G
    }
3790
1.43G
}
3791
3792
inline constexpr char32_t invalid_code_point = 0x110000;
3793
3794
inline constexpr char32_t decode_utf8_code_point_exhaustive(
3795
    std::string_view input)
3796
21.4M
{
3797
21.4M
    SCN_EXPECT(!input.empty() && input.size() <= 4);
3798
3799
21.4M
    const auto is_trailing_code_unit = [](char ch) {
3800
1.80M
        return static_cast<unsigned char>(ch) >> 6 == 0x2;
3801
1.80M
    };
3802
3803
21.4M
    if (input.size() == 1) {
3804
20.0M
        if (static_cast<unsigned char>(input[0]) >= 0x80) {
3805
3.00k
            SCN_UNLIKELY_ATTR
3806
3.00k
            return invalid_code_point;
3807
3.00k
        }
3808
20.0M
        return static_cast<char32_t>(input[0]);
3809
20.0M
    }
3810
3811
1.41M
    if (input.size() == 2) {
3812
997k
        if ((static_cast<unsigned char>(input[0]) & 0xe0) != 0xc0) {
3813
301
            SCN_UNLIKELY_ATTR
3814
301
            return invalid_code_point;
3815
301
        }
3816
997k
        if (!is_trailing_code_unit(input[1])) {
3817
76.6k
            SCN_UNLIKELY_ATTR
3818
76.6k
            return invalid_code_point;
3819
76.6k
        }
3820
3821
920k
        char32_t cp{};
3822
920k
        cp |= (static_cast<char32_t>(input[0]) & 0x1f) << 6;
3823
920k
        cp |= (static_cast<char32_t>(input[1]) & 0x3f) << 0;
3824
920k
        return cp;
3825
997k
    }
3826
3827
413k
    if (input.size() == 3) {
3828
344k
        if ((static_cast<unsigned char>(input[0]) & 0xf0) != 0xe0) {
3829
163
            SCN_UNLIKELY_ATTR
3830
163
            return invalid_code_point;
3831
163
        }
3832
344k
        if (!is_trailing_code_unit(input[1]) ||
3833
344k
            !is_trailing_code_unit(input[2])) {
3834
34.0k
            SCN_UNLIKELY_ATTR
3835
34.0k
            return invalid_code_point;
3836
34.0k
        }
3837
3838
310k
        char32_t cp{};
3839
310k
        cp |= (static_cast<char32_t>(input[0]) & 0x0f) << 12;
3840
310k
        cp |= (static_cast<char32_t>(input[1]) & 0x3f) << 6;
3841
310k
        cp |= (static_cast<char32_t>(input[2]) & 0x3f) << 0;
3842
310k
        return cp;
3843
344k
    }
3844
3845
68.8k
    if (input.size() == 4) {
3846
68.8k
        if ((static_cast<unsigned char>(input[0]) & 0xf8) != 0xf0) {
3847
0
            SCN_UNLIKELY_ATTR
3848
0
            return invalid_code_point;
3849
0
        }
3850
68.8k
        if (static_cast<unsigned char>(input[0]) > 0xf4) {
3851
12.0k
            SCN_UNLIKELY_ATTR
3852
12.0k
            return invalid_code_point;
3853
12.0k
        }
3854
56.7k
        if (!is_trailing_code_unit(input[1]) ||
3855
56.7k
            !is_trailing_code_unit(input[2]) ||
3856
56.7k
            !is_trailing_code_unit(input[3])) {
3857
12.2k
            SCN_UNLIKELY_ATTR
3858
12.2k
            return invalid_code_point;
3859
12.2k
        }
3860
3861
44.4k
        char32_t cp{};
3862
44.4k
        cp |= (static_cast<char32_t>(input[0]) & 0x07) << 18;
3863
44.4k
        cp |= (static_cast<char32_t>(input[1]) & 0x3f) << 12;
3864
44.4k
        cp |= (static_cast<char32_t>(input[2]) & 0x3f) << 6;
3865
44.4k
        cp |= (static_cast<char32_t>(input[3]) & 0x3f) << 0;
3866
44.4k
        return cp;
3867
56.7k
    }
3868
3869
0
#if !SCN_GCC || SCN_GCC >= SCN_COMPILER(8, 0, 0)
3870
    // gcc 7 thinks we'll get here, even when we won't
3871
0
    SCN_EXPECT(false);
3872
0
#endif
3873
0
    SCN_UNREACHABLE;
3874
0
}
3875
3876
inline constexpr char32_t decode_utf8_code_point_exhaustive_valid(
3877
    std::string_view input)
3878
206k
{
3879
206k
    SCN_EXPECT(!input.empty() && input.size() <= 4);
3880
3881
206k
    const auto is_trailing_code_unit = [](char ch) {
3882
22.3k
        return static_cast<unsigned char>(ch) >> 6 == 0x2;
3883
22.3k
    };
3884
3885
206k
    if (input.size() == 1) {
3886
185k
        SCN_EXPECT(static_cast<unsigned char>(input[0]) < 0x80);
3887
185k
        return static_cast<char32_t>(input[0]);
3888
185k
    }
3889
3890
20.9k
    if (input.size() == 2) {
3891
19.9k
        SCN_EXPECT((static_cast<unsigned char>(input[0]) & 0xe0) == 0xc0);
3892
19.9k
        SCN_EXPECT(is_trailing_code_unit(input[1]));
3893
3894
19.9k
        char32_t cp{};
3895
19.9k
        cp |= (static_cast<char32_t>(input[0]) & 0x1f) << 6;
3896
19.9k
        cp |= (static_cast<char32_t>(input[1]) & 0x3f) << 0;
3897
19.9k
        return cp;
3898
19.9k
    }
3899
3900
994
    if (input.size() == 3) {
3901
638
        SCN_EXPECT((static_cast<unsigned char>(input[0]) & 0xf0) == 0xe0);
3902
638
        SCN_EXPECT(is_trailing_code_unit(input[1]));
3903
638
        SCN_EXPECT(is_trailing_code_unit(input[2]));
3904
3905
638
        char32_t cp{};
3906
638
        cp |= (static_cast<char32_t>(input[0]) & 0x0f) << 12;
3907
638
        cp |= (static_cast<char32_t>(input[1]) & 0x3f) << 6;
3908
638
        cp |= (static_cast<char32_t>(input[2]) & 0x3f) << 0;
3909
638
        return cp;
3910
638
    }
3911
3912
356
    if (input.size() == 4) {
3913
356
        SCN_EXPECT((static_cast<unsigned char>(input[0]) & 0xf8) == 0xf0);
3914
356
        SCN_EXPECT(static_cast<unsigned char>(input[0]) <= 0xf4);
3915
356
        SCN_EXPECT(is_trailing_code_unit(input[1]));
3916
356
        SCN_EXPECT(is_trailing_code_unit(input[2]));
3917
356
        SCN_EXPECT(is_trailing_code_unit(input[3]));
3918
3919
356
        char32_t cp{};
3920
356
        cp |= (static_cast<char32_t>(input[0]) & 0x07) << 18;
3921
356
        cp |= (static_cast<char32_t>(input[1]) & 0x3f) << 12;
3922
356
        cp |= (static_cast<char32_t>(input[2]) & 0x3f) << 6;
3923
356
        cp |= (static_cast<char32_t>(input[3]) & 0x3f) << 0;
3924
356
        return cp;
3925
356
    }
3926
3927
0
#if !SCN_GCC || SCN_GCC >= SCN_COMPILER(8, 0, 0)
3928
    // gcc 7 thinks we'll get here, even when we won't
3929
0
    SCN_EXPECT(false);
3930
0
#endif
3931
0
    SCN_UNREACHABLE;
3932
0
}
3933
3934
template <typename CharT>
3935
inline constexpr char32_t decode_utf16_code_point_exhaustive(
3936
    std::basic_string_view<CharT> input)
3937
{
3938
    static_assert(sizeof(CharT) == 2);
3939
3940
    SCN_EXPECT(!input.empty() && input.size() <= 2);
3941
3942
    if (input.size() == 1) {
3943
        return static_cast<char32_t>(input[0]);
3944
    }
3945
3946
    const auto lead = static_cast<uint32_t>(input[0]);
3947
    const auto trail = static_cast<uint32_t>(input[1]);
3948
    if (lead < 0xd800 || lead > 0xdbff || trail < 0xdc00 || trail > 0xdfff) {
3949
        SCN_UNLIKELY_ATTR
3950
        return invalid_code_point;
3951
    }
3952
3953
    const auto cp = ((lead - 0xd800) << 10) | (trail - 0xdc00);
3954
    return static_cast<char32_t>(cp + 0x10000);
3955
}
3956
3957
template <typename CharT>
3958
inline constexpr char32_t decode_utf16_code_point_exhaustive_valid(
3959
    std::basic_string_view<CharT> input)
3960
{
3961
    static_assert(sizeof(CharT) == 2);
3962
3963
    SCN_EXPECT(!input.empty() && input.size() <= 2);
3964
3965
    if (input.size() == 1) {
3966
        return static_cast<char32_t>(input[0]);
3967
    }
3968
3969
    const auto lead = static_cast<uint32_t>(input[0]);
3970
    const auto trail = static_cast<uint32_t>(input[1]);
3971
    SCN_EXPECT(lead >= 0xd800);
3972
    SCN_EXPECT(lead <= 0xdbff);
3973
    SCN_EXPECT(trail >= 0xdc00);
3974
    SCN_EXPECT(trail <= 0xdfff);
3975
3976
    const auto cp = ((lead - 0xd800) << 10) | (trail - 0xdc00);
3977
    return static_cast<char32_t>(cp + 0x10000);
3978
}
3979
3980
template <typename CharT>
3981
inline constexpr char32_t decode_code_point_exhaustive(
3982
    std::basic_string_view<CharT> input)
3983
1.45G
{
3984
1.45G
    if constexpr (sizeof(CharT) == 1) {
3985
1.43G
        return decode_utf8_code_point_exhaustive(input);
3986
1.43G
    }
3987
1.43G
    else if constexpr (sizeof(CharT) == 2) {
3988
1.43G
        return decode_utf16_code_point_exhaustive(input);
3989
1.43G
    }
3990
1.43G
    else {
3991
1.43G
        SCN_EXPECT(input.size() == 1);
3992
1.43G
        auto cp = static_cast<char32_t>(input.front());
3993
1.43G
        if (SCN_UNLIKELY(cp >= invalid_code_point)) {
3994
1.74M
            return invalid_code_point;
3995
1.74M
        }
3996
1.43G
        return cp;
3997
1.43G
    }
3998
1.45G
}
char32_t scn::v3::detail::decode_code_point_exhaustive<char>(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Line
Count
Source
3983
21.4M
{
3984
21.4M
    if constexpr (sizeof(CharT) == 1) {
3985
21.4M
        return decode_utf8_code_point_exhaustive(input);
3986
21.4M
    }
3987
21.4M
    else if constexpr (sizeof(CharT) == 2) {
3988
21.4M
        return decode_utf16_code_point_exhaustive(input);
3989
21.4M
    }
3990
21.4M
    else {
3991
21.4M
        SCN_EXPECT(input.size() == 1);
3992
21.4M
        auto cp = static_cast<char32_t>(input.front());
3993
21.4M
        if (SCN_UNLIKELY(cp >= invalid_code_point)) {
3994
21.4M
            return invalid_code_point;
3995
21.4M
        }
3996
21.4M
        return cp;
3997
21.4M
    }
3998
21.4M
}
char32_t scn::v3::detail::decode_code_point_exhaustive<wchar_t>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >)
Line
Count
Source
3983
1.43G
{
3984
1.43G
    if constexpr (sizeof(CharT) == 1) {
3985
1.43G
        return decode_utf8_code_point_exhaustive(input);
3986
1.43G
    }
3987
1.43G
    else if constexpr (sizeof(CharT) == 2) {
3988
1.43G
        return decode_utf16_code_point_exhaustive(input);
3989
1.43G
    }
3990
1.43G
    else {
3991
1.43G
        SCN_EXPECT(input.size() == 1);
3992
1.43G
        auto cp = static_cast<char32_t>(input.front());
3993
1.43G
        if (SCN_UNLIKELY(cp >= invalid_code_point)) {
3994
1.74M
            return invalid_code_point;
3995
1.74M
        }
3996
1.43G
        return cp;
3997
1.43G
    }
3998
1.43G
}
3999
4000
template <typename CharT>
4001
inline constexpr char32_t decode_code_point_exhaustive_valid(
4002
    std::basic_string_view<CharT> input)
4003
206k
{
4004
206k
    if constexpr (sizeof(CharT) == 1) {
4005
0
        return decode_utf8_code_point_exhaustive_valid(input);
4006
0
    }
4007
0
    else if constexpr (sizeof(CharT) == 2) {
4008
0
        return decode_utf16_code_point_exhaustive_valid(input);
4009
0
    }
4010
0
    else {
4011
0
        SCN_EXPECT(input.size() == 1);
4012
0
        return static_cast<char32_t>(input.front());
4013
0
    }
4014
206k
}
char32_t scn::v3::detail::decode_code_point_exhaustive_valid<char>(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Line
Count
Source
4003
206k
{
4004
206k
    if constexpr (sizeof(CharT) == 1) {
4005
206k
        return decode_utf8_code_point_exhaustive_valid(input);
4006
206k
    }
4007
206k
    else if constexpr (sizeof(CharT) == 2) {
4008
206k
        return decode_utf16_code_point_exhaustive_valid(input);
4009
206k
    }
4010
206k
    else {
4011
206k
        SCN_EXPECT(input.size() == 1);
4012
206k
        return static_cast<char32_t>(input.front());
4013
206k
    }
4014
206k
}
Unexecuted instantiation: char32_t scn::v3::detail::decode_code_point_exhaustive_valid<wchar_t>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >)
4015
4016
}  // namespace detail
4017
4018
/////////////////////////////////////////////////////////////////
4019
// scan_buffer
4020
/////////////////////////////////////////////////////////////////
4021
4022
namespace detail {
4023
template <typename CharT>
4024
class basic_scan_buffer {
4025
public:
4026
    class forward_iterator;
4027
4028
    using char_type = CharT;
4029
    using range_type =
4030
        ranges::subrange<forward_iterator, ranges::default_sentinel_t>;
4031
4032
    basic_scan_buffer(const basic_scan_buffer&) = delete;
4033
    basic_scan_buffer& operator=(const basic_scan_buffer&) = delete;
4034
    basic_scan_buffer(basic_scan_buffer&&) = delete;
4035
    basic_scan_buffer& operator=(basic_scan_buffer&&) = delete;
4036
25.1M
    virtual ~basic_scan_buffer() = default;
scn::v3::detail::basic_scan_buffer<char>::~basic_scan_buffer()
Line
Count
Source
4036
4.78M
    virtual ~basic_scan_buffer() = default;
scn::v3::detail::basic_scan_buffer<wchar_t>::~basic_scan_buffer()
Line
Count
Source
4036
20.3M
    virtual ~basic_scan_buffer() = default;
4037
4038
    virtual bool fill() = 0;
4039
4040
    virtual void sync(std::ptrdiff_t position)
4041
25.1M
    {
4042
25.1M
        SCN_UNUSED(position);
4043
25.1M
    }
scn::v3::detail::basic_scan_buffer<char>::sync(long)
Line
Count
Source
4041
4.78M
    {
4042
4.78M
        SCN_UNUSED(position);
4043
4.78M
    }
scn::v3::detail::basic_scan_buffer<wchar_t>::sync(long)
Line
Count
Source
4041
20.3M
    {
4042
20.3M
        SCN_UNUSED(position);
4043
20.3M
    }
4044
4045
    void sync_all()
4046
1.11M
    {
4047
1.11M
        sync(0);
4048
1.11M
    }
scn::v3::detail::basic_scan_buffer<char>::sync_all()
Line
Count
Source
4046
371k
    {
4047
371k
        sync(0);
4048
371k
    }
scn::v3::detail::basic_scan_buffer<wchar_t>::sync_all()
Line
Count
Source
4046
743k
    {
4047
743k
        sync(0);
4048
743k
    }
4049
4050
    SCN_NODISCARD std::ptrdiff_t chars_available() const
4051
198G
    {
4052
198G
        return m_putback_buffer.size() + m_current_view.size();
4053
198G
    }
scn::v3::detail::basic_scan_buffer<char>::chars_available() const
Line
Count
Source
4051
432M
    {
4052
432M
        return m_putback_buffer.size() + m_current_view.size();
4053
432M
    }
scn::v3::detail::basic_scan_buffer<wchar_t>::chars_available() const
Line
Count
Source
4051
198G
    {
4052
198G
        return m_putback_buffer.size() + m_current_view.size();
4053
198G
    }
4054
4055
    SCN_NODISCARD std::basic_string_view<CharT> current_view() const
4056
0
    {
4057
0
        return m_current_view;
4058
0
    }
Unexecuted instantiation: scn::v3::detail::basic_scan_buffer<char>::current_view() const
Unexecuted instantiation: scn::v3::detail::basic_scan_buffer<wchar_t>::current_view() const
4059
4060
    SCN_NODISCARD std::basic_string<CharT>& putback_buffer()
4061
0
    {
4062
0
        return m_putback_buffer;
4063
0
    }
Unexecuted instantiation: scn::v3::detail::basic_scan_buffer<char>::putback_buffer()
Unexecuted instantiation: scn::v3::detail::basic_scan_buffer<wchar_t>::putback_buffer()
4064
    SCN_NODISCARD const std::basic_string<CharT>& putback_buffer() const
4065
    {
4066
        return m_putback_buffer;
4067
    }
4068
4069
    SCN_NODISCARD std::basic_string_view<CharT> get_segment_starting_at(
4070
        std::ptrdiff_t pos) const
4071
76.8M
    {
4072
76.8M
        if (SCN_UNLIKELY(
4073
76.8M
                pos < static_cast<std::ptrdiff_t>(m_putback_buffer.size()))) {
4074
45.7M
            return std::basic_string_view<CharT>(m_putback_buffer).substr(pos);
4075
45.7M
        }
4076
31.1M
        const auto start = pos - m_putback_buffer.size();
4077
31.1M
        SCN_EXPECT(start <= m_current_view.size());
4078
31.1M
        return m_current_view.substr(start);
4079
31.1M
    }
scn::v3::detail::basic_scan_buffer<char>::get_segment_starting_at(long) const
Line
Count
Source
4071
17.2M
    {
4072
17.2M
        if (SCN_UNLIKELY(
4073
17.2M
                pos < static_cast<std::ptrdiff_t>(m_putback_buffer.size()))) {
4074
6.42M
            return std::basic_string_view<CharT>(m_putback_buffer).substr(pos);
4075
6.42M
        }
4076
10.8M
        const auto start = pos - m_putback_buffer.size();
4077
10.8M
        SCN_EXPECT(start <= m_current_view.size());
4078
10.8M
        return m_current_view.substr(start);
4079
10.8M
    }
scn::v3::detail::basic_scan_buffer<wchar_t>::get_segment_starting_at(long) const
Line
Count
Source
4071
59.5M
    {
4072
59.5M
        if (SCN_UNLIKELY(
4073
59.5M
                pos < static_cast<std::ptrdiff_t>(m_putback_buffer.size()))) {
4074
39.2M
            return std::basic_string_view<CharT>(m_putback_buffer).substr(pos);
4075
39.2M
        }
4076
20.2M
        const auto start = pos - m_putback_buffer.size();
4077
20.2M
        SCN_EXPECT(start <= m_current_view.size());
4078
20.2M
        return m_current_view.substr(start);
4079
20.2M
    }
4080
4081
    SCN_NODISCARD CharT get_character_at(std::ptrdiff_t pos) const
4082
647M
    {
4083
647M
        if (SCN_UNLIKELY(
4084
647M
                pos < static_cast<std::ptrdiff_t>(m_putback_buffer.size()))) {
4085
310M
            return m_putback_buffer[pos];
4086
310M
        }
4087
337M
        const auto start = pos - m_putback_buffer.size();
4088
337M
        SCN_EXPECT(start < m_current_view.size());
4089
337M
        return m_current_view[start];
4090
337M
    }
scn::v3::detail::basic_scan_buffer<char>::get_character_at(long) const
Line
Count
Source
4082
95.1M
    {
4083
95.1M
        if (SCN_UNLIKELY(
4084
95.1M
                pos < static_cast<std::ptrdiff_t>(m_putback_buffer.size()))) {
4085
60.1M
            return m_putback_buffer[pos];
4086
60.1M
        }
4087
35.0M
        const auto start = pos - m_putback_buffer.size();
4088
35.0M
        SCN_EXPECT(start < m_current_view.size());
4089
35.0M
        return m_current_view[start];
4090
35.0M
    }
scn::v3::detail::basic_scan_buffer<wchar_t>::get_character_at(long) const
Line
Count
Source
4082
552M
    {
4083
552M
        if (SCN_UNLIKELY(
4084
552M
                pos < static_cast<std::ptrdiff_t>(m_putback_buffer.size()))) {
4085
249M
            return m_putback_buffer[pos];
4086
249M
        }
4087
302M
        const auto start = pos - m_putback_buffer.size();
4088
302M
        SCN_EXPECT(start < m_current_view.size());
4089
302M
        return m_current_view[start];
4090
302M
    }
4091
4092
    SCN_NODISCARD bool is_contiguous() const
4093
75.5M
    {
4094
75.5M
        return m_is_contiguous;
4095
75.5M
    }
scn::v3::detail::basic_scan_buffer<char>::is_contiguous() const
Line
Count
Source
4093
14.3M
    {
4094
14.3M
        return m_is_contiguous;
4095
14.3M
    }
scn::v3::detail::basic_scan_buffer<wchar_t>::is_contiguous() const
Line
Count
Source
4093
61.1M
    {
4094
61.1M
        return m_is_contiguous;
4095
61.1M
    }
4096
4097
    SCN_NODISCARD auto get_contiguous() const
4098
0
    {
4099
0
        SCN_EXPECT(is_contiguous());
4100
0
        return ranges::subrange<const CharT*>{
4101
0
            current_view().data(),
4102
0
            current_view().data() + current_view().size()};
4103
0
    }
Unexecuted instantiation: scn::v3::detail::basic_scan_buffer<char>::get_contiguous() const
Unexecuted instantiation: scn::v3::detail::basic_scan_buffer<wchar_t>::get_contiguous() const
4104
4105
    SCN_NODISCARD range_type get();
4106
4107
protected:
4108
    friend class forward_iterator;
4109
4110
    struct contiguous_tag {};
4111
    struct non_contiguous_tag {};
4112
4113
    basic_scan_buffer(contiguous_tag, std::basic_string_view<char_type> sv)
4114
        : m_current_view(sv), m_is_contiguous(true)
4115
0
    {
4116
0
    }
Unexecuted instantiation: scn::v3::detail::basic_scan_buffer<char>::basic_scan_buffer(scn::v3::detail::basic_scan_buffer<char>::contiguous_tag, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: scn::v3::detail::basic_scan_buffer<wchar_t>::basic_scan_buffer(scn::v3::detail::basic_scan_buffer<wchar_t>::contiguous_tag, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >)
4117
4118
    basic_scan_buffer(non_contiguous_tag,
4119
                      std::basic_string_view<char_type> sv = {})
4120
        : m_current_view(sv), m_is_contiguous(false)
4121
25.1M
    {
4122
25.1M
    }
scn::v3::detail::basic_scan_buffer<char>::basic_scan_buffer(scn::v3::detail::basic_scan_buffer<char>::non_contiguous_tag, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Line
Count
Source
4121
4.78M
    {
4122
4.78M
    }
scn::v3::detail::basic_scan_buffer<wchar_t>::basic_scan_buffer(scn::v3::detail::basic_scan_buffer<wchar_t>::non_contiguous_tag, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >)
Line
Count
Source
4121
20.3M
    {
4122
20.3M
    }
4123
4124
    basic_scan_buffer(bool is_contiguous, std::basic_string_view<char_type> sv)
4125
        : m_current_view(sv), m_is_contiguous(is_contiguous)
4126
    {
4127
    }
4128
4129
    std::basic_string_view<char_type> m_current_view{};
4130
    std::basic_string<char_type> m_putback_buffer{};
4131
    bool m_is_contiguous{false};
4132
};
4133
4134
template <typename CharT>
4135
class basic_scan_buffer<CharT>::forward_iterator {
4136
public:
4137
    using value_type = CharT;
4138
    using reference = CharT;
4139
    using pointer = CharT*;
4140
    using difference_type = std::ptrdiff_t;
4141
    using iterator_category = std::forward_iterator_tag;
4142
4143
    forward_iterator() = default;
4144
4145
    forward_iterator(basic_scan_buffer<CharT>* parent, std::ptrdiff_t pos)
4146
        : m_begin(parent), m_end(nullptr), m_position(pos)
4147
25.1M
    {
4148
25.1M
        SCN_EXPECT(parent);
4149
25.1M
        SCN_EXPECT(!parent->is_contiguous());
4150
25.1M
    }
scn::v3::detail::basic_scan_buffer<char>::forward_iterator::forward_iterator(scn::v3::detail::basic_scan_buffer<char>*, long)
Line
Count
Source
4147
4.78M
    {
4148
4.78M
        SCN_EXPECT(parent);
4149
4.78M
        SCN_EXPECT(!parent->is_contiguous());
4150
4.78M
    }
scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator::forward_iterator(scn::v3::detail::basic_scan_buffer<wchar_t>*, long)
Line
Count
Source
4147
20.3M
    {
4148
20.3M
        SCN_EXPECT(parent);
4149
20.3M
        SCN_EXPECT(!parent->is_contiguous());
4150
20.3M
    }
4151
4152
    forward_iterator(std::basic_string_view<CharT> view, std::ptrdiff_t pos)
4153
        : m_begin(const_cast<CharT*>(view.data())),
4154
          m_end(const_cast<CharT*>(view.data() + view.size())),
4155
          m_position(pos)
4156
0
    {
4157
0
    }
Unexecuted instantiation: scn::v3::detail::basic_scan_buffer<char>::forward_iterator::forward_iterator(std::__1::basic_string_view<char, std::__1::char_traits<char> >, long)
Unexecuted instantiation: scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator::forward_iterator(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >, long)
4158
4159
    std::ptrdiff_t position() const
4160
101M
    {
4161
101M
        return m_position;
4162
101M
    }
scn::v3::detail::basic_scan_buffer<char>::forward_iterator::position() const
Line
Count
Source
4160
29.5M
    {
4161
29.5M
        return m_position;
4162
29.5M
    }
scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator::position() const
Line
Count
Source
4160
72.3M
    {
4161
72.3M
        return m_position;
4162
72.3M
    }
4163
4164
    bool stores_parent() const
4165
398G
    {
4166
398G
        return m_end == nullptr;
4167
398G
    }
scn::v3::detail::basic_scan_buffer<char>::forward_iterator::stores_parent() const
Line
Count
Source
4165
1.04G
    {
4166
1.04G
        return m_end == nullptr;
4167
1.04G
    }
scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator::stores_parent() const
Line
Count
Source
4165
396G
    {
4166
396G
        return m_end == nullptr;
4167
396G
    }
4168
4169
    basic_scan_buffer<CharT>* parent()
4170
9.14M
    {
4171
9.14M
        SCN_EXPECT(stores_parent());
4172
9.14M
        return static_cast<basic_scan_buffer<CharT>*>(m_begin);
4173
9.14M
    }
scn::v3::detail::basic_scan_buffer<char>::forward_iterator::parent()
Line
Count
Source
4170
8.15M
    {
4171
8.15M
        SCN_EXPECT(stores_parent());
4172
8.15M
        return static_cast<basic_scan_buffer<CharT>*>(m_begin);
4173
8.15M
    }
scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator::parent()
Line
Count
Source
4170
990k
    {
4171
990k
        SCN_EXPECT(stores_parent());
4172
990k
        return static_cast<basic_scan_buffer<CharT>*>(m_begin);
4173
990k
    }
4174
    const basic_scan_buffer<CharT>* parent() const
4175
199G
    {
4176
199G
        SCN_EXPECT(stores_parent());
4177
199G
        return static_cast<const basic_scan_buffer<CharT>*>(m_begin);
4178
199G
    }
scn::v3::detail::basic_scan_buffer<char>::forward_iterator::parent() const
Line
Count
Source
4175
581M
    {
4176
581M
        SCN_EXPECT(stores_parent());
4177
581M
        return static_cast<const basic_scan_buffer<CharT>*>(m_begin);
4178
581M
    }
scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator::parent() const
Line
Count
Source
4175
198G
    {
4176
198G
        SCN_EXPECT(stores_parent());
4177
198G
        return static_cast<const basic_scan_buffer<CharT>*>(m_begin);
4178
198G
    }
4179
4180
    std::basic_string_view<CharT> contiguous_segment() const
4181
76.8M
    {
4182
76.8M
        if (!stores_parent()) {
4183
0
            return make_string_view_from_pointers(
4184
0
                static_cast<const CharT*>(m_begin) + position(),
4185
0
                static_cast<const CharT*>(m_end));
4186
0
        }
4187
76.8M
        return parent()->get_segment_starting_at(position());
4188
76.8M
    }
scn::v3::detail::basic_scan_buffer<char>::forward_iterator::contiguous_segment() const
Line
Count
Source
4181
17.2M
    {
4182
17.2M
        if (!stores_parent()) {
4183
0
            return make_string_view_from_pointers(
4184
0
                static_cast<const CharT*>(m_begin) + position(),
4185
0
                static_cast<const CharT*>(m_end));
4186
0
        }
4187
17.2M
        return parent()->get_segment_starting_at(position());
4188
17.2M
    }
scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator::contiguous_segment() const
Line
Count
Source
4181
59.5M
    {
4182
59.5M
        if (!stores_parent()) {
4183
0
            return make_string_view_from_pointers(
4184
0
                static_cast<const CharT*>(m_begin) + position(),
4185
0
                static_cast<const CharT*>(m_end));
4186
0
        }
4187
59.5M
        return parent()->get_segment_starting_at(position());
4188
59.5M
    }
4189
    auto to_contiguous_segment_iterator() const
4190
    {
4191
        return contiguous_segment().data();
4192
    }
4193
4194
    forward_iterator& operator++()
4195
196G
    {
4196
196G
        ++m_position;
4197
196G
        (void)read_at_position();
4198
196G
        return *this;
4199
196G
    }
scn::v3::detail::basic_scan_buffer<char>::forward_iterator::operator++()
Line
Count
Source
4195
158M
    {
4196
158M
        ++m_position;
4197
158M
        (void)read_at_position();
4198
158M
        return *this;
4199
158M
    }
scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator::operator++()
Line
Count
Source
4195
196G
    {
4196
196G
        ++m_position;
4197
196G
        (void)read_at_position();
4198
196G
        return *this;
4199
196G
    }
4200
4201
    forward_iterator operator++(int)
4202
    {
4203
        auto copy = *this;
4204
        operator++();
4205
        return copy;
4206
    }
4207
4208
    CharT operator*() const
4209
647M
    {
4210
647M
        SCN_EXPECT(m_begin);
4211
4212
647M
        if (!stores_parent()) {
4213
0
            auto ptr = static_cast<const CharT*>(m_begin) + position();
4214
0
            SCN_EXPECT(ptr != m_end);
4215
0
            return *ptr;
4216
0
        }
4217
4218
647M
        auto res = read_at_position();
4219
647M
        SCN_EXPECT(res);
4220
647M
        return parent()->get_character_at(m_position);
4221
647M
    }
scn::v3::detail::basic_scan_buffer<char>::forward_iterator::operator*() const
Line
Count
Source
4209
95.1M
    {
4210
95.1M
        SCN_EXPECT(m_begin);
4211
4212
95.1M
        if (!stores_parent()) {
4213
0
            auto ptr = static_cast<const CharT*>(m_begin) + position();
4214
0
            SCN_EXPECT(ptr != m_end);
4215
0
            return *ptr;
4216
0
        }
4217
4218
95.1M
        auto res = read_at_position();
4219
95.1M
        SCN_EXPECT(res);
4220
95.1M
        return parent()->get_character_at(m_position);
4221
95.1M
    }
scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator::operator*() const
Line
Count
Source
4209
552M
    {
4210
552M
        SCN_EXPECT(m_begin);
4211
4212
552M
        if (!stores_parent()) {
4213
0
            auto ptr = static_cast<const CharT*>(m_begin) + position();
4214
0
            SCN_EXPECT(ptr != m_end);
4215
0
            return *ptr;
4216
0
        }
4217
4218
552M
        auto res = read_at_position();
4219
552M
        SCN_EXPECT(res);
4220
552M
        return parent()->get_character_at(m_position);
4221
552M
    }
4222
4223
    forward_iterator& batch_advance(std::ptrdiff_t n)
4224
165k
    {
4225
165k
        SCN_EXPECT(n >= 0);
4226
165k
        m_position += n;
4227
165k
        return *this;
4228
165k
    }
scn::v3::detail::basic_scan_buffer<char>::forward_iterator::batch_advance(long)
Line
Count
Source
4224
165k
    {
4225
165k
        SCN_EXPECT(n >= 0);
4226
165k
        m_position += n;
4227
165k
        return *this;
4228
165k
    }
scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator::batch_advance(long)
Line
Count
Source
4224
260
    {
4225
260
        SCN_EXPECT(n >= 0);
4226
260
        m_position += n;
4227
260
        return *this;
4228
260
    }
4229
4230
    forward_iterator& batch_advance_to(std::ptrdiff_t i)
4231
0
    {
4232
0
        SCN_EXPECT(i >= m_position);
4233
0
        m_position = i;
4234
0
        return *this;
4235
0
    }
Unexecuted instantiation: scn::v3::detail::basic_scan_buffer<char>::forward_iterator::batch_advance_to(long)
Unexecuted instantiation: scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator::batch_advance_to(long)
4236
4237
    friend bool operator==(const forward_iterator& lhs,
4238
                           const forward_iterator& rhs)
4239
196G
    {
4240
196G
        return lhs.m_begin == rhs.m_begin && lhs.m_position == rhs.m_position;
4241
196G
    }
scn::v3::detail::operator==(scn::v3::detail::basic_scan_buffer<char>::forward_iterator const&, scn::v3::detail::basic_scan_buffer<char>::forward_iterator const&)
Line
Count
Source
4239
87.0M
    {
4240
87.0M
        return lhs.m_begin == rhs.m_begin && lhs.m_position == rhs.m_position;
4241
87.0M
    }
scn::v3::detail::operator==(scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator const&, scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator const&)
Line
Count
Source
4239
196G
    {
4240
196G
        return lhs.m_begin == rhs.m_begin && lhs.m_position == rhs.m_position;
4241
196G
    }
4242
    friend bool operator!=(const forward_iterator& lhs,
4243
                           const forward_iterator& rhs)
4244
196G
    {
4245
196G
        return !(lhs == rhs);
4246
196G
    }
scn::v3::detail::operator!=(scn::v3::detail::basic_scan_buffer<char>::forward_iterator const&, scn::v3::detail::basic_scan_buffer<char>::forward_iterator const&)
Line
Count
Source
4244
79.1M
    {
4245
79.1M
        return !(lhs == rhs);
4246
79.1M
    }
scn::v3::detail::operator!=(scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator const&, scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator const&)
Line
Count
Source
4244
196G
    {
4245
196G
        return !(lhs == rhs);
4246
196G
    }
4247
4248
    friend bool operator==(const forward_iterator& x,
4249
                           ranges::default_sentinel_t)
4250
295M
    {
4251
295M
        return x.is_at_end();
4252
295M
    }
scn::v3::detail::operator==(scn::v3::detail::basic_scan_buffer<char>::forward_iterator const&, scn::v3::ranges::default_sentinel_t)
Line
Count
Source
4250
35.0M
    {
4251
35.0M
        return x.is_at_end();
4252
35.0M
    }
scn::v3::detail::operator==(scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator const&, scn::v3::ranges::default_sentinel_t)
Line
Count
Source
4250
260M
    {
4251
260M
        return x.is_at_end();
4252
260M
    }
4253
    friend bool operator==(ranges::default_sentinel_t,
4254
                           const forward_iterator& x)
4255
    {
4256
        return x.is_at_end();
4257
    }
4258
4259
    friend bool operator!=(const forward_iterator& x,
4260
                           ranges::default_sentinel_t)
4261
377M
    {
4262
377M
        return !x.is_at_end();
4263
377M
    }
scn::v3::detail::operator!=(scn::v3::detail::basic_scan_buffer<char>::forward_iterator const&, scn::v3::ranges::default_sentinel_t)
Line
Count
Source
4261
47.1M
    {
4262
47.1M
        return !x.is_at_end();
4263
47.1M
    }
scn::v3::detail::operator!=(scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator const&, scn::v3::ranges::default_sentinel_t)
Line
Count
Source
4261
330M
    {
4262
330M
        return !x.is_at_end();
4263
330M
    }
4264
    friend bool operator!=(ranges::default_sentinel_t,
4265
                           const forward_iterator& x)
4266
    {
4267
        return !x.is_at_end();
4268
    }
4269
4270
private:
4271
    friend class basic_scan_buffer<CharT>;
4272
4273
    SCN_NODISCARD bool read_at_position() const
4274
197G
    {
4275
197G
        SCN_EXPECT(m_begin);
4276
4277
197G
        if (!stores_parent()) {
4278
0
            return true;
4279
0
        }
4280
4281
197G
        if (SCN_LIKELY(m_position < parent()->chars_available())) {
4282
197G
            return true;
4283
197G
        }
4284
4285
735M
        while (m_position >= parent()->chars_available()) {
4286
368M
            if (!const_cast<basic_scan_buffer<CharT>*>(parent())->fill()) {
4287
1.05M
                return false;
4288
1.05M
            }
4289
368M
        }
4290
367M
        return true;
4291
368M
    }
scn::v3::detail::basic_scan_buffer<char>::forward_iterator::read_at_position() const
Line
Count
Source
4274
335M
    {
4275
335M
        SCN_EXPECT(m_begin);
4276
4277
335M
        if (!stores_parent()) {
4278
0
            return true;
4279
0
        }
4280
4281
335M
        if (SCN_LIKELY(m_position < parent()->chars_available())) {
4282
291M
            return true;
4283
291M
        }
4284
4285
88.2M
        while (m_position >= parent()->chars_available()) {
4286
44.4M
            if (!const_cast<basic_scan_buffer<CharT>*>(parent())->fill()) {
4287
721k
                return false;
4288
721k
            }
4289
44.4M
        }
4290
43.7M
        return true;
4291
44.4M
    }
scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator::read_at_position() const
Line
Count
Source
4274
197G
    {
4275
197G
        SCN_EXPECT(m_begin);
4276
4277
197G
        if (!stores_parent()) {
4278
0
            return true;
4279
0
        }
4280
4281
197G
        if (SCN_LIKELY(m_position < parent()->chars_available())) {
4282
197G
            return true;
4283
197G
        }
4284
4285
647M
        while (m_position >= parent()->chars_available()) {
4286
323M
            if (!const_cast<basic_scan_buffer<CharT>*>(parent())->fill()) {
4287
332k
                return false;
4288
332k
            }
4289
323M
        }
4290
323M
        return true;
4291
323M
    }
4292
4293
    SCN_NODISCARD bool is_at_end() const
4294
673M
    {
4295
673M
        if (m_end) {
4296
0
            return (static_cast<const CharT*>(m_begin) + position()) == m_end;
4297
0
        }
4298
673M
        if (!m_begin) {
4299
0
            return true;
4300
0
        }
4301
673M
        return !read_at_position();
4302
673M
    }
scn::v3::detail::basic_scan_buffer<char>::forward_iterator::is_at_end() const
Line
Count
Source
4294
82.1M
    {
4295
82.1M
        if (m_end) {
4296
0
            return (static_cast<const CharT*>(m_begin) + position()) == m_end;
4297
0
        }
4298
82.1M
        if (!m_begin) {
4299
0
            return true;
4300
0
        }
4301
82.1M
        return !read_at_position();
4302
82.1M
    }
scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator::is_at_end() const
Line
Count
Source
4294
591M
    {
4295
591M
        if (m_end) {
4296
0
            return (static_cast<const CharT*>(m_begin) + position()) == m_end;
4297
0
        }
4298
591M
        if (!m_begin) {
4299
0
            return true;
4300
0
        }
4301
591M
        return !read_at_position();
4302
591M
    }
4303
4304
    // If m_end is null, m_begin points to the parent scan_buffer
4305
    // Otherwise, [m_begin, m_end) is the range of this iterator (and of
4306
    // the entire range)
4307
    mutable void* m_begin{nullptr};
4308
    mutable void* m_end{nullptr};
4309
    std::ptrdiff_t m_position{0};
4310
};
4311
4312
template <typename CharT>
4313
SCN_NODISCARD auto basic_scan_buffer<CharT>::get() -> range_type
4314
25.1M
{
4315
25.1M
    if (is_contiguous()) {
4316
0
        return ranges::subrange{forward_iterator{m_current_view, 0},
4317
0
                                ranges::default_sentinel};
4318
0
    }
4319
25.1M
    return ranges::subrange{forward_iterator{this, 0},
4320
25.1M
                            ranges::default_sentinel};
4321
25.1M
}
scn::v3::detail::basic_scan_buffer<char>::get()
Line
Count
Source
4314
4.78M
{
4315
4.78M
    if (is_contiguous()) {
4316
0
        return ranges::subrange{forward_iterator{m_current_view, 0},
4317
0
                                ranges::default_sentinel};
4318
0
    }
4319
4.78M
    return ranges::subrange{forward_iterator{this, 0},
4320
4.78M
                            ranges::default_sentinel};
4321
4.78M
}
scn::v3::detail::basic_scan_buffer<wchar_t>::get()
Line
Count
Source
4314
20.3M
{
4315
20.3M
    if (is_contiguous()) {
4316
0
        return ranges::subrange{forward_iterator{m_current_view, 0},
4317
0
                                ranges::default_sentinel};
4318
0
    }
4319
20.3M
    return ranges::subrange{forward_iterator{this, 0},
4320
20.3M
                            ranges::default_sentinel};
4321
20.3M
}
4322
4323
static_assert(ranges::forward_range<scan_buffer::range_type>);
4324
4325
template <typename CharT>
4326
class basic_scan_string_buffer : public basic_scan_buffer<CharT> {
4327
    using base = basic_scan_buffer<CharT>;
4328
4329
public:
4330
    basic_scan_string_buffer(std::basic_string_view<CharT> sv)
4331
        : base(typename base::contiguous_tag{}, sv)
4332
0
    {
4333
0
    }
Unexecuted instantiation: scn::v3::detail::basic_scan_string_buffer<char>::basic_scan_string_buffer(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: scn::v3::detail::basic_scan_string_buffer<wchar_t>::basic_scan_string_buffer(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >)
4334
4335
    bool fill() override
4336
0
    {
4337
0
        SCN_EXPECT(false);
4338
0
        SCN_UNREACHABLE;
4339
0
    }
Unexecuted instantiation: scn::v3::detail::basic_scan_string_buffer<char>::fill()
Unexecuted instantiation: scn::v3::detail::basic_scan_string_buffer<wchar_t>::fill()
4340
};
4341
4342
template <typename CharT>
4343
basic_scan_string_buffer(std::basic_string_view<CharT>)
4344
    -> basic_scan_string_buffer<CharT>;
4345
4346
template <typename CharT>
4347
class basic_scan_forward_buffer_base : public basic_scan_buffer<CharT> {
4348
    using base = basic_scan_buffer<CharT>;
4349
4350
protected:
4351
    basic_scan_forward_buffer_base() : base(typename base::non_contiguous_tag{})
4352
25.1M
    {
4353
25.1M
    }
scn::v3::detail::basic_scan_forward_buffer_base<char>::basic_scan_forward_buffer_base()
Line
Count
Source
4352
4.78M
    {
4353
4.78M
    }
scn::v3::detail::basic_scan_forward_buffer_base<wchar_t>::basic_scan_forward_buffer_base()
Line
Count
Source
4352
20.3M
    {
4353
20.3M
    }
4354
};
4355
4356
template <typename Range>
4357
class basic_scan_forward_buffer_impl
4358
    : public basic_scan_forward_buffer_base<detail::char_t<Range>> {
4359
    static_assert(ranges::range<const Range> && std::is_object_v<Range>);
4360
4361
    using _char_type = detail::char_t<Range>;
4362
    using base = basic_scan_forward_buffer_base<_char_type>;
4363
4364
public:
4365
    using char_type = _char_type;
4366
    using range_type = Range;
4367
    using iterator = ranges::iterator_t<const Range>;
4368
    using sentinel = ranges::sentinel_t<const Range>;
4369
4370
    template <
4371
        typename R,
4372
        std::enable_if_t<is_not_self<R, basic_scan_forward_buffer_impl> &&
4373
                         std::is_convertible_v<R, const Range&>>* = nullptr>
4374
    basic_scan_forward_buffer_impl(R&& r)
4375
        : m_range(std::addressof(static_cast<const Range&>(SCN_FWD(r)))),
4376
          m_cursor(ranges::begin(*m_range))
4377
25.1M
    {
4378
25.1M
    }
scn::v3::detail::basic_scan_forward_buffer_impl<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > >::basic_scan_forward_buffer_impl<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > const&, (void*)0>(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > const&)
Line
Count
Source
4377
4.78M
    {
4378
4.78M
    }
scn::v3::detail::basic_scan_forward_buffer_impl<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > >::basic_scan_forward_buffer_impl<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > const&, (void*)0>(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > const&)
Line
Count
Source
4377
20.3M
    {
4378
20.3M
    }
4379
4380
    bool fill() override
4381
368M
    {
4382
368M
        if (m_cursor == ranges::end(*m_range)) {
4383
1.05M
            return false;
4384
1.05M
        }
4385
367M
        if (!this->m_current_view.empty()) {
4386
342M
            this->m_putback_buffer.insert(this->m_putback_buffer.end(),
4387
342M
                                          this->m_current_view.begin(),
4388
342M
                                          this->m_current_view.end());
4389
342M
        }
4390
367M
        m_latest = *m_cursor;
4391
367M
        ++m_cursor;
4392
367M
        this->m_current_view = std::basic_string_view<char_type>{&m_latest, 1};
4393
367M
        return true;
4394
368M
    }
scn::v3::detail::basic_scan_forward_buffer_impl<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > >::fill()
Line
Count
Source
4381
44.4M
    {
4382
44.4M
        if (m_cursor == ranges::end(*m_range)) {
4383
721k
            return false;
4384
721k
        }
4385
43.7M
        if (!this->m_current_view.empty()) {
4386
39.0M
            this->m_putback_buffer.insert(this->m_putback_buffer.end(),
4387
39.0M
                                          this->m_current_view.begin(),
4388
39.0M
                                          this->m_current_view.end());
4389
39.0M
        }
4390
43.7M
        m_latest = *m_cursor;
4391
43.7M
        ++m_cursor;
4392
43.7M
        this->m_current_view = std::basic_string_view<char_type>{&m_latest, 1};
4393
43.7M
        return true;
4394
44.4M
    }
scn::v3::detail::basic_scan_forward_buffer_impl<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > >::fill()
Line
Count
Source
4381
323M
    {
4382
323M
        if (m_cursor == ranges::end(*m_range)) {
4383
332k
            return false;
4384
332k
        }
4385
323M
        if (!this->m_current_view.empty()) {
4386
303M
            this->m_putback_buffer.insert(this->m_putback_buffer.end(),
4387
303M
                                          this->m_current_view.begin(),
4388
303M
                                          this->m_current_view.end());
4389
303M
        }
4390
323M
        m_latest = *m_cursor;
4391
323M
        ++m_cursor;
4392
323M
        this->m_current_view = std::basic_string_view<char_type>{&m_latest, 1};
4393
323M
        return true;
4394
323M
    }
4395
4396
private:
4397
    const Range* m_range;
4398
    iterator m_cursor;
4399
    char_type m_latest{};
4400
};
4401
4402
template <typename R>
4403
basic_scan_forward_buffer_impl(const R&) -> basic_scan_forward_buffer_impl<R>;
4404
4405
class scan_file_buffer : public basic_scan_buffer<char> {
4406
    using base = basic_scan_buffer<char>;
4407
4408
public:
4409
    scan_file_buffer(std::FILE* file);
4410
    ~scan_file_buffer();
4411
4412
    bool fill() override;
4413
    void sync(std::ptrdiff_t position) override;
4414
4415
private:
4416
    std::FILE* m_file;
4417
    std::optional<char_type> m_latest{std::nullopt};
4418
};
4419
4420
template <typename CharT>
4421
class basic_scan_ref_buffer : public basic_scan_buffer<CharT> {
4422
    using base = basic_scan_buffer<CharT>;
4423
4424
public:
4425
    basic_scan_ref_buffer(base& other, std::ptrdiff_t starting_pos)
4426
        : base(other.is_contiguous(), std::basic_string_view<CharT>{}),
4427
          m_other(&other),
4428
          m_starting_pos(starting_pos)
4429
    {
4430
        this->m_current_view = other.get_segment_starting_at(starting_pos);
4431
        m_fill_needs_to_propagate = other.get_segment_starting_at(0).end() ==
4432
                                    this->m_current_view.end();
4433
    }
4434
4435
    basic_scan_ref_buffer(std::basic_string_view<CharT> view)
4436
        : base(true, view), m_other(nullptr)
4437
    {
4438
    }
4439
4440
    bool fill() override
4441
0
    {
4442
0
        if (!m_other) {
4443
0
            return false;
4444
0
        }
4445
0
        SCN_EXPECT(m_starting_pos >= 0);
4446
0
4447
0
        if (m_fill_needs_to_propagate) {
4448
0
            auto ret = m_other->fill();
4449
0
            this->m_current_view = m_other->current_view();
4450
0
            this->m_putback_buffer =
4451
0
                m_other->putback_buffer().substr(m_starting_pos);
4452
0
            return ret;
4453
0
        }
4454
0
4455
0
        m_fill_needs_to_propagate = true;
4456
0
        this->m_putback_buffer = std::basic_string<CharT>{this->m_current_view};
4457
0
        this->m_current_view = m_other->current_view();
4458
0
        return true;
4459
0
    }
Unexecuted instantiation: scn::v3::detail::basic_scan_ref_buffer<char>::fill()
Unexecuted instantiation: scn::v3::detail::basic_scan_ref_buffer<wchar_t>::fill()
4460
4461
private:
4462
    base* m_other;
4463
    std::ptrdiff_t m_starting_pos{-1};
4464
    bool m_fill_needs_to_propagate{false};
4465
};
4466
4467
template <typename CharT>
4468
basic_scan_ref_buffer(basic_scan_buffer<CharT>&, std::ptrdiff_t)
4469
    -> basic_scan_ref_buffer<CharT>;
4470
4471
template <typename CharT>
4472
basic_scan_ref_buffer(std::basic_string_view<CharT>)
4473
    -> basic_scan_ref_buffer<CharT>;
4474
4475
template <typename Range>
4476
auto make_string_scan_buffer(const Range& range)
4477
{
4478
    return basic_scan_string_buffer(
4479
        std::basic_string_view{ranges::data(range), ranges::size(range)});
4480
}
4481
4482
template <typename Range>
4483
auto make_forward_scan_buffer(const Range& range)
4484
25.1M
{
4485
25.1M
    return basic_scan_forward_buffer_impl(range);
4486
25.1M
}
auto scn::v3::detail::make_forward_scan_buffer<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > >(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > const&)
Line
Count
Source
4484
4.78M
{
4485
4.78M
    return basic_scan_forward_buffer_impl(range);
4486
4.78M
}
auto scn::v3::detail::make_forward_scan_buffer<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > >(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > const&)
Line
Count
Source
4484
20.3M
{
4485
20.3M
    return basic_scan_forward_buffer_impl(range);
4486
20.3M
}
4487
4488
inline auto make_file_scan_buffer(std::FILE* file)
4489
0
{
4490
0
    return scan_file_buffer(file);
4491
0
}
4492
}  // namespace detail
4493
4494
/////////////////////////////////////////////////////////////////
4495
// make_scan_buffer
4496
/////////////////////////////////////////////////////////////////
4497
4498
/**
4499
 * \defgroup scannable Scannable sources
4500
 *
4501
 * \brief Description of the `scannable_range` and `scannable_source`
4502
 * concepts.
4503
 *
4504
 * A range is considered scannable, if it models at least `forward_range`,
4505
 * and its character type is correct (its value type is the same as the one
4506
 * of the format string).
4507
 * If the range additionally models `contiguous_range` and `sized_range`,
4508
 * additional optimizations are enabled.
4509
 *
4510
 * \code{.cpp}
4511
 * // Exposition only
4512
 * template <typename Range, typename CharT>
4513
 * concept scannable_range =
4514
 *     ranges::forward_range<Range> &&
4515
 *     std::same_as<ranges::range_value_t<Range>, CharT>;
4516
 * \endcode
4517
 *
4518
 * Additionally, files (`std::FILE*`) can be scanned from.
4519
 * Files are always considered to be narrow (`char`-oriented).
4520
 * Thus, the entire concept is:
4521
 *
4522
 * \code{.cpp}
4523
 * // Exposition only
4524
 * template <typename Source, typename CharT>
4525
 * concept scannable_source =
4526
 *   (std::same_as<std::remove_cvref_t<Source>, std::FILE*> &&
4527
 *    std::same_as<CharT, char>) ||
4528
 *   scannable_range<Source, CharT>;
4529
 * \endcode
4530
 */
4531
4532
/**
4533
 * Tag type to indicate an invalid range given to `scn::scan`
4534
 *
4535
 * \ingroup scannable
4536
 */
4537
struct invalid_input_range {};
4538
4539
struct invalid_char_type : invalid_input_range {};
4540
struct custom_char_traits : invalid_input_range {};
4541
struct file_marker_found : invalid_input_range {};
4542
struct insufficient_range : invalid_input_range {};
4543
4544
namespace detail {
4545
template <typename CharT>
4546
inline constexpr bool is_valid_char_type =
4547
    std::is_same_v<std::remove_const_t<CharT>, char> ||
4548
    std::is_same_v<std::remove_const_t<CharT>, wchar_t>;
4549
4550
namespace _make_scan_buffer {
4551
// buffer -> ref_buffer
4552
inline auto impl(scan_buffer::range_type r, priority_tag<4>) noexcept
4553
    -> basic_scan_ref_buffer<char>
4554
0
{
4555
0
    if (!r.begin().stores_parent()) {
4556
0
        return basic_scan_ref_buffer{r.begin().contiguous_segment()};
4557
0
    }
4558
0
    return basic_scan_ref_buffer{*r.begin().parent(), r.begin().position()};
4559
0
}
4560
inline auto impl(wscan_buffer::range_type r, priority_tag<4>) noexcept
4561
    -> basic_scan_ref_buffer<wchar_t>
4562
0
{
4563
0
    if (!r.begin().stores_parent()) {
4564
0
        return basic_scan_ref_buffer{r.begin().contiguous_segment()};
4565
0
    }
4566
0
    return basic_scan_ref_buffer{*r.begin().parent(), r.begin().position()};
4567
0
}
4568
4569
// string_view -> string_buffer
4570
template <typename CharT>
4571
auto impl(std::basic_string_view<CharT> r, priority_tag<3>) noexcept
4572
226k
{
4573
226k
    if constexpr (is_valid_char_type<CharT>) {
4574
226k
        return r;
4575
        // return make_string_scan_buffer(r);
4576
226k
    }
4577
226k
    else {
4578
226k
        return invalid_char_type{};
4579
226k
    }
4580
226k
}
auto scn::v3::detail::_make_scan_buffer::impl<char>(std::__1::basic_string_view<char, std::__1::char_traits<char> >, scn::v3::detail::priority_tag<3ul>)
Line
Count
Source
4572
75.3k
{
4573
75.3k
    if constexpr (is_valid_char_type<CharT>) {
4574
75.3k
        return r;
4575
        // return make_string_scan_buffer(r);
4576
75.3k
    }
4577
75.3k
    else {
4578
75.3k
        return invalid_char_type{};
4579
75.3k
    }
4580
75.3k
}
auto scn::v3::detail::_make_scan_buffer::impl<wchar_t>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >, scn::v3::detail::priority_tag<3ul>)
Line
Count
Source
4572
150k
{
4573
150k
    if constexpr (is_valid_char_type<CharT>) {
4574
150k
        return r;
4575
        // return make_string_scan_buffer(r);
4576
150k
    }
4577
150k
    else {
4578
150k
        return invalid_char_type{};
4579
150k
    }
4580
150k
}
4581
4582
// string& -> string_buffer
4583
template <typename CharT, typename Traits, typename Allocator>
4584
auto impl(const std::basic_string<CharT, Traits, Allocator>& r,
4585
          priority_tag<3>) noexcept
4586
{
4587
    if constexpr (!is_valid_char_type<CharT>) {
4588
        return invalid_char_type{};
4589
    }
4590
    else if constexpr (!std::is_same_v<Traits, std::char_traits<CharT>>) {
4591
        return custom_char_traits{};
4592
    }
4593
    else {
4594
        return std::basic_string_view<CharT>{r};
4595
    }
4596
}
4597
4598
// String literals:
4599
// CharT(&)[] -> string_buffer
4600
template <typename CharT,
4601
          std::size_t N,
4602
          std::enable_if_t<is_valid_char_type<CharT>>* = nullptr>
4603
auto impl(const CharT (&r)[N], priority_tag<3>) noexcept
4604
{
4605
    return std::basic_string_view<CharT>{r, N - 1};
4606
}
4607
4608
// FILE* -> file_buffer
4609
inline auto impl(std::FILE* file, priority_tag<3>)
4610
0
{
4611
0
    return make_file_scan_buffer(file);
4612
0
}
4613
4614
// contiguous + sized -> string_buffer
4615
template <typename Range,
4616
          std::enable_if_t<ranges::contiguous_range<Range> &&
4617
                           ranges::sized_range<Range>>* = nullptr>
4618
auto impl(const Range& r, priority_tag<2>)
4619
44.9M
{
4620
44.9M
    if constexpr (is_valid_char_type<detail::char_t<Range>>) {
4621
44.9M
        return std::basic_string_view{ranges::data(r), ranges::size(r)};
4622
44.9M
    }
4623
44.9M
    else {
4624
44.9M
        return invalid_char_type{};
4625
44.9M
    }
4626
44.9M
}
auto scn::v3::detail::_make_scan_buffer::impl<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, (void*)0>(scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> const&, scn::v3::detail::priority_tag<2ul>)
Line
Count
Source
4619
4.94M
{
4620
4.94M
    if constexpr (is_valid_char_type<detail::char_t<Range>>) {
4621
4.94M
        return std::basic_string_view{ranges::data(r), ranges::size(r)};
4622
4.94M
    }
4623
4.94M
    else {
4624
4.94M
        return invalid_char_type{};
4625
4.94M
    }
4626
4.94M
}
auto scn::v3::detail::_make_scan_buffer::impl<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, (void*)0>(scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> const&, scn::v3::detail::priority_tag<2ul>)
Line
Count
Source
4619
40.0M
{
4620
40.0M
    if constexpr (is_valid_char_type<detail::char_t<Range>>) {
4621
40.0M
        return std::basic_string_view{ranges::data(r), ranges::size(r)};
4622
40.0M
    }
4623
40.0M
    else {
4624
40.0M
        return invalid_char_type{};
4625
40.0M
    }
4626
40.0M
}
4627
4628
// !contiguous + random-access + iterator can be made into a ptr
4629
// for MSVC debug iterators
4630
//   -> string_buffer
4631
template <typename Range,
4632
          std::enable_if_t<!ranges::contiguous_range<Range> &&
4633
                           ranges::random_access_range<Range> &&
4634
                           can_make_address_from_iterator<
4635
                               ranges::iterator_t<Range>>>* = nullptr>
4636
auto impl(const Range& r, priority_tag<1>)
4637
{
4638
    if constexpr (is_valid_char_type<detail::char_t<Range>>) {
4639
        return make_string_view_from_pointers(to_address(ranges::begin(r)),
4640
                                              to_address(ranges::end(r)));
4641
    }
4642
    else {
4643
        return invalid_char_type{};
4644
    }
4645
}
4646
4647
// forward -> forward_buffer<R>
4648
template <typename Range>
4649
auto impl(const Range& r, priority_tag<0>)
4650
25.1M
{
4651
25.1M
    if constexpr (std::is_same_v<Range, file_marker>) {
4652
25.1M
        return file_marker_found{};
4653
25.1M
    }
4654
25.1M
    else if constexpr (!ranges::forward_range<Range>) {
4655
25.1M
        if constexpr (ranges::range<Range>) {
4656
25.1M
            return insufficient_range{};
4657
25.1M
        }
4658
25.1M
        else {
4659
25.1M
            return invalid_input_range{};
4660
25.1M
        }
4661
25.1M
    }
4662
25.1M
    else if constexpr (!is_valid_char_type<detail::char_t<Range>>) {
4663
25.1M
        return invalid_char_type{};
4664
25.1M
    }
4665
25.1M
    else {
4666
25.1M
        return make_forward_scan_buffer(r);
4667
25.1M
    }
4668
25.1M
}
auto scn::v3::detail::_make_scan_buffer::impl<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > >(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > const&, scn::v3::detail::priority_tag<0ul>)
Line
Count
Source
4650
4.78M
{
4651
4.78M
    if constexpr (std::is_same_v<Range, file_marker>) {
4652
4.78M
        return file_marker_found{};
4653
4.78M
    }
4654
4.78M
    else if constexpr (!ranges::forward_range<Range>) {
4655
4.78M
        if constexpr (ranges::range<Range>) {
4656
4.78M
            return insufficient_range{};
4657
4.78M
        }
4658
4.78M
        else {
4659
4.78M
            return invalid_input_range{};
4660
4.78M
        }
4661
4.78M
    }
4662
4.78M
    else if constexpr (!is_valid_char_type<detail::char_t<Range>>) {
4663
4.78M
        return invalid_char_type{};
4664
4.78M
    }
4665
4.78M
    else {
4666
4.78M
        return make_forward_scan_buffer(r);
4667
4.78M
    }
4668
4.78M
}
auto scn::v3::detail::_make_scan_buffer::impl<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > >(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > const&, scn::v3::detail::priority_tag<0ul>)
Line
Count
Source
4650
20.3M
{
4651
20.3M
    if constexpr (std::is_same_v<Range, file_marker>) {
4652
20.3M
        return file_marker_found{};
4653
20.3M
    }
4654
20.3M
    else if constexpr (!ranges::forward_range<Range>) {
4655
20.3M
        if constexpr (ranges::range<Range>) {
4656
20.3M
            return insufficient_range{};
4657
20.3M
        }
4658
20.3M
        else {
4659
20.3M
            return invalid_input_range{};
4660
20.3M
        }
4661
20.3M
    }
4662
20.3M
    else if constexpr (!is_valid_char_type<detail::char_t<Range>>) {
4663
20.3M
        return invalid_char_type{};
4664
20.3M
    }
4665
20.3M
    else {
4666
20.3M
        return make_forward_scan_buffer(r);
4667
20.3M
    }
4668
20.3M
}
4669
}  // namespace _make_scan_buffer
4670
4671
template <typename Range>
4672
inline constexpr bool is_scannable_range =
4673
    !std::is_base_of_v<invalid_input_range,
4674
                       decltype(_make_scan_buffer::impl(
4675
                                    SCN_DECLVAL(const Range&)),
4676
                                priority_tag<4>{})>;
4677
4678
template <typename Range>
4679
auto make_scan_buffer(const Range& range)
4680
70.3M
{
4681
70.3M
    using T = decltype(_make_scan_buffer::impl(range, priority_tag<4>{}));
4682
4683
70.3M
    static_assert(!std::is_same_v<T, invalid_char_type>,
4684
70.3M
                  "\n"
4685
70.3M
                  "Unsupported range type given as input to a scanning "
4686
70.3M
                  "function.\n"
4687
70.3M
                  "A range needs to have a character type (value type) "
4688
70.3M
                  "of either `char` or `wchar_t` to be scannable.\n"
4689
70.3M
                  "For proper `wchar_t` support, <scn/xchar.h> needs "
4690
70.3M
                  "to be included.\n"
4691
70.3M
                  "See the scnlib documentation for more details.");
4692
70.3M
    static_assert(
4693
70.3M
        !std::is_same_v<T, custom_char_traits>,
4694
70.3M
        "\n"
4695
70.3M
        "Unsupported range type given as input to a scanning "
4696
70.3M
        "function.\n"
4697
70.3M
        "String types (std::basic_string, and std::basic_string_view) "
4698
70.3M
        "need to use std::char_traits. Strings with custom Traits are "
4699
70.3M
        "not supported.");
4700
70.3M
    static_assert(!std::is_same_v<T, file_marker_found>,
4701
70.3M
                  "\n"
4702
70.3M
                  "Unsupported range type given as input to a scanning "
4703
70.3M
                  "function.\n"
4704
70.3M
                  "file_marker_found cannot be used as an "
4705
70.3M
                  "source range type to scn::scan.\n"
4706
70.3M
                  "To read from stdin, use scn::input or scn::prompt, "
4707
70.3M
                  "and do not provide an explicit source range, "
4708
70.3M
                  "or use scn::scan with a FILE* directly.");
4709
70.3M
    static_assert(!std::is_same_v<T, insufficient_range>,
4710
70.3M
                  "\n"
4711
70.3M
                  "Unsupported range type given as input to a scanning "
4712
70.3M
                  "function.\n"
4713
70.3M
                  "In order to be scannable, a range needs to satisfy "
4714
70.3M
                  "`forward_range`. `input_range` is not sufficient.");
4715
70.3M
    static_assert(!std::is_same_v<T, invalid_input_range>,
4716
70.3M
                  "\n"
4717
70.3M
                  "Unsupported range type given as input to a scanning "
4718
70.3M
                  "function.\n"
4719
70.3M
                  "A range needs to model forward_range and have a valid "
4720
70.3M
                  "character type (char or wchar_t) to be scannable.\n"
4721
70.3M
                  "Examples of scannable ranges are std::string, "
4722
70.3M
                  "std::string_view, "
4723
70.3M
                  "std::vector<char>, and scn::istreambuf_view.\n"
4724
70.3M
                  "See the scnlib documentation for more details.");
4725
4726
70.3M
    return _make_scan_buffer::impl(range, priority_tag<4>{});
4727
70.3M
}
auto scn::v3::detail::make_scan_buffer<std::__1::basic_string_view<char, std::__1::char_traits<char> > >(std::__1::basic_string_view<char, std::__1::char_traits<char> > const&)
Line
Count
Source
4680
75.3k
{
4681
75.3k
    using T = decltype(_make_scan_buffer::impl(range, priority_tag<4>{}));
4682
4683
75.3k
    static_assert(!std::is_same_v<T, invalid_char_type>,
4684
75.3k
                  "\n"
4685
75.3k
                  "Unsupported range type given as input to a scanning "
4686
75.3k
                  "function.\n"
4687
75.3k
                  "A range needs to have a character type (value type) "
4688
75.3k
                  "of either `char` or `wchar_t` to be scannable.\n"
4689
75.3k
                  "For proper `wchar_t` support, <scn/xchar.h> needs "
4690
75.3k
                  "to be included.\n"
4691
75.3k
                  "See the scnlib documentation for more details.");
4692
75.3k
    static_assert(
4693
75.3k
        !std::is_same_v<T, custom_char_traits>,
4694
75.3k
        "\n"
4695
75.3k
        "Unsupported range type given as input to a scanning "
4696
75.3k
        "function.\n"
4697
75.3k
        "String types (std::basic_string, and std::basic_string_view) "
4698
75.3k
        "need to use std::char_traits. Strings with custom Traits are "
4699
75.3k
        "not supported.");
4700
75.3k
    static_assert(!std::is_same_v<T, file_marker_found>,
4701
75.3k
                  "\n"
4702
75.3k
                  "Unsupported range type given as input to a scanning "
4703
75.3k
                  "function.\n"
4704
75.3k
                  "file_marker_found cannot be used as an "
4705
75.3k
                  "source range type to scn::scan.\n"
4706
75.3k
                  "To read from stdin, use scn::input or scn::prompt, "
4707
75.3k
                  "and do not provide an explicit source range, "
4708
75.3k
                  "or use scn::scan with a FILE* directly.");
4709
75.3k
    static_assert(!std::is_same_v<T, insufficient_range>,
4710
75.3k
                  "\n"
4711
75.3k
                  "Unsupported range type given as input to a scanning "
4712
75.3k
                  "function.\n"
4713
75.3k
                  "In order to be scannable, a range needs to satisfy "
4714
75.3k
                  "`forward_range`. `input_range` is not sufficient.");
4715
75.3k
    static_assert(!std::is_same_v<T, invalid_input_range>,
4716
75.3k
                  "\n"
4717
75.3k
                  "Unsupported range type given as input to a scanning "
4718
75.3k
                  "function.\n"
4719
75.3k
                  "A range needs to model forward_range and have a valid "
4720
75.3k
                  "character type (char or wchar_t) to be scannable.\n"
4721
75.3k
                  "Examples of scannable ranges are std::string, "
4722
75.3k
                  "std::string_view, "
4723
75.3k
                  "std::vector<char>, and scn::istreambuf_view.\n"
4724
75.3k
                  "See the scnlib documentation for more details.");
4725
4726
75.3k
    return _make_scan_buffer::impl(range, priority_tag<4>{});
4727
75.3k
}
auto scn::v3::detail::make_scan_buffer<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > const&)
Line
Count
Source
4680
150k
{
4681
150k
    using T = decltype(_make_scan_buffer::impl(range, priority_tag<4>{}));
4682
4683
150k
    static_assert(!std::is_same_v<T, invalid_char_type>,
4684
150k
                  "\n"
4685
150k
                  "Unsupported range type given as input to a scanning "
4686
150k
                  "function.\n"
4687
150k
                  "A range needs to have a character type (value type) "
4688
150k
                  "of either `char` or `wchar_t` to be scannable.\n"
4689
150k
                  "For proper `wchar_t` support, <scn/xchar.h> needs "
4690
150k
                  "to be included.\n"
4691
150k
                  "See the scnlib documentation for more details.");
4692
150k
    static_assert(
4693
150k
        !std::is_same_v<T, custom_char_traits>,
4694
150k
        "\n"
4695
150k
        "Unsupported range type given as input to a scanning "
4696
150k
        "function.\n"
4697
150k
        "String types (std::basic_string, and std::basic_string_view) "
4698
150k
        "need to use std::char_traits. Strings with custom Traits are "
4699
150k
        "not supported.");
4700
150k
    static_assert(!std::is_same_v<T, file_marker_found>,
4701
150k
                  "\n"
4702
150k
                  "Unsupported range type given as input to a scanning "
4703
150k
                  "function.\n"
4704
150k
                  "file_marker_found cannot be used as an "
4705
150k
                  "source range type to scn::scan.\n"
4706
150k
                  "To read from stdin, use scn::input or scn::prompt, "
4707
150k
                  "and do not provide an explicit source range, "
4708
150k
                  "or use scn::scan with a FILE* directly.");
4709
150k
    static_assert(!std::is_same_v<T, insufficient_range>,
4710
150k
                  "\n"
4711
150k
                  "Unsupported range type given as input to a scanning "
4712
150k
                  "function.\n"
4713
150k
                  "In order to be scannable, a range needs to satisfy "
4714
150k
                  "`forward_range`. `input_range` is not sufficient.");
4715
150k
    static_assert(!std::is_same_v<T, invalid_input_range>,
4716
150k
                  "\n"
4717
150k
                  "Unsupported range type given as input to a scanning "
4718
150k
                  "function.\n"
4719
150k
                  "A range needs to model forward_range and have a valid "
4720
150k
                  "character type (char or wchar_t) to be scannable.\n"
4721
150k
                  "Examples of scannable ranges are std::string, "
4722
150k
                  "std::string_view, "
4723
150k
                  "std::vector<char>, and scn::istreambuf_view.\n"
4724
150k
                  "See the scnlib documentation for more details.");
4725
4726
150k
    return _make_scan_buffer::impl(range, priority_tag<4>{});
4727
150k
}
auto scn::v3::detail::make_scan_buffer<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >(scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> const&)
Line
Count
Source
4680
4.94M
{
4681
4.94M
    using T = decltype(_make_scan_buffer::impl(range, priority_tag<4>{}));
4682
4683
4.94M
    static_assert(!std::is_same_v<T, invalid_char_type>,
4684
4.94M
                  "\n"
4685
4.94M
                  "Unsupported range type given as input to a scanning "
4686
4.94M
                  "function.\n"
4687
4.94M
                  "A range needs to have a character type (value type) "
4688
4.94M
                  "of either `char` or `wchar_t` to be scannable.\n"
4689
4.94M
                  "For proper `wchar_t` support, <scn/xchar.h> needs "
4690
4.94M
                  "to be included.\n"
4691
4.94M
                  "See the scnlib documentation for more details.");
4692
4.94M
    static_assert(
4693
4.94M
        !std::is_same_v<T, custom_char_traits>,
4694
4.94M
        "\n"
4695
4.94M
        "Unsupported range type given as input to a scanning "
4696
4.94M
        "function.\n"
4697
4.94M
        "String types (std::basic_string, and std::basic_string_view) "
4698
4.94M
        "need to use std::char_traits. Strings with custom Traits are "
4699
4.94M
        "not supported.");
4700
4.94M
    static_assert(!std::is_same_v<T, file_marker_found>,
4701
4.94M
                  "\n"
4702
4.94M
                  "Unsupported range type given as input to a scanning "
4703
4.94M
                  "function.\n"
4704
4.94M
                  "file_marker_found cannot be used as an "
4705
4.94M
                  "source range type to scn::scan.\n"
4706
4.94M
                  "To read from stdin, use scn::input or scn::prompt, "
4707
4.94M
                  "and do not provide an explicit source range, "
4708
4.94M
                  "or use scn::scan with a FILE* directly.");
4709
4.94M
    static_assert(!std::is_same_v<T, insufficient_range>,
4710
4.94M
                  "\n"
4711
4.94M
                  "Unsupported range type given as input to a scanning "
4712
4.94M
                  "function.\n"
4713
4.94M
                  "In order to be scannable, a range needs to satisfy "
4714
4.94M
                  "`forward_range`. `input_range` is not sufficient.");
4715
4.94M
    static_assert(!std::is_same_v<T, invalid_input_range>,
4716
4.94M
                  "\n"
4717
4.94M
                  "Unsupported range type given as input to a scanning "
4718
4.94M
                  "function.\n"
4719
4.94M
                  "A range needs to model forward_range and have a valid "
4720
4.94M
                  "character type (char or wchar_t) to be scannable.\n"
4721
4.94M
                  "Examples of scannable ranges are std::string, "
4722
4.94M
                  "std::string_view, "
4723
4.94M
                  "std::vector<char>, and scn::istreambuf_view.\n"
4724
4.94M
                  "See the scnlib documentation for more details.");
4725
4726
4.94M
    return _make_scan_buffer::impl(range, priority_tag<4>{});
4727
4.94M
}
auto scn::v3::detail::make_scan_buffer<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > >(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > const&)
Line
Count
Source
4680
4.78M
{
4681
4.78M
    using T = decltype(_make_scan_buffer::impl(range, priority_tag<4>{}));
4682
4683
4.78M
    static_assert(!std::is_same_v<T, invalid_char_type>,
4684
4.78M
                  "\n"
4685
4.78M
                  "Unsupported range type given as input to a scanning "
4686
4.78M
                  "function.\n"
4687
4.78M
                  "A range needs to have a character type (value type) "
4688
4.78M
                  "of either `char` or `wchar_t` to be scannable.\n"
4689
4.78M
                  "For proper `wchar_t` support, <scn/xchar.h> needs "
4690
4.78M
                  "to be included.\n"
4691
4.78M
                  "See the scnlib documentation for more details.");
4692
4.78M
    static_assert(
4693
4.78M
        !std::is_same_v<T, custom_char_traits>,
4694
4.78M
        "\n"
4695
4.78M
        "Unsupported range type given as input to a scanning "
4696
4.78M
        "function.\n"
4697
4.78M
        "String types (std::basic_string, and std::basic_string_view) "
4698
4.78M
        "need to use std::char_traits. Strings with custom Traits are "
4699
4.78M
        "not supported.");
4700
4.78M
    static_assert(!std::is_same_v<T, file_marker_found>,
4701
4.78M
                  "\n"
4702
4.78M
                  "Unsupported range type given as input to a scanning "
4703
4.78M
                  "function.\n"
4704
4.78M
                  "file_marker_found cannot be used as an "
4705
4.78M
                  "source range type to scn::scan.\n"
4706
4.78M
                  "To read from stdin, use scn::input or scn::prompt, "
4707
4.78M
                  "and do not provide an explicit source range, "
4708
4.78M
                  "or use scn::scan with a FILE* directly.");
4709
4.78M
    static_assert(!std::is_same_v<T, insufficient_range>,
4710
4.78M
                  "\n"
4711
4.78M
                  "Unsupported range type given as input to a scanning "
4712
4.78M
                  "function.\n"
4713
4.78M
                  "In order to be scannable, a range needs to satisfy "
4714
4.78M
                  "`forward_range`. `input_range` is not sufficient.");
4715
4.78M
    static_assert(!std::is_same_v<T, invalid_input_range>,
4716
4.78M
                  "\n"
4717
4.78M
                  "Unsupported range type given as input to a scanning "
4718
4.78M
                  "function.\n"
4719
4.78M
                  "A range needs to model forward_range and have a valid "
4720
4.78M
                  "character type (char or wchar_t) to be scannable.\n"
4721
4.78M
                  "Examples of scannable ranges are std::string, "
4722
4.78M
                  "std::string_view, "
4723
4.78M
                  "std::vector<char>, and scn::istreambuf_view.\n"
4724
4.78M
                  "See the scnlib documentation for more details.");
4725
4726
4.78M
    return _make_scan_buffer::impl(range, priority_tag<4>{});
4727
4.78M
}
auto scn::v3::detail::make_scan_buffer<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >(scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> const&)
Line
Count
Source
4680
40.0M
{
4681
40.0M
    using T = decltype(_make_scan_buffer::impl(range, priority_tag<4>{}));
4682
4683
40.0M
    static_assert(!std::is_same_v<T, invalid_char_type>,
4684
40.0M
                  "\n"
4685
40.0M
                  "Unsupported range type given as input to a scanning "
4686
40.0M
                  "function.\n"
4687
40.0M
                  "A range needs to have a character type (value type) "
4688
40.0M
                  "of either `char` or `wchar_t` to be scannable.\n"
4689
40.0M
                  "For proper `wchar_t` support, <scn/xchar.h> needs "
4690
40.0M
                  "to be included.\n"
4691
40.0M
                  "See the scnlib documentation for more details.");
4692
40.0M
    static_assert(
4693
40.0M
        !std::is_same_v<T, custom_char_traits>,
4694
40.0M
        "\n"
4695
40.0M
        "Unsupported range type given as input to a scanning "
4696
40.0M
        "function.\n"
4697
40.0M
        "String types (std::basic_string, and std::basic_string_view) "
4698
40.0M
        "need to use std::char_traits. Strings with custom Traits are "
4699
40.0M
        "not supported.");
4700
40.0M
    static_assert(!std::is_same_v<T, file_marker_found>,
4701
40.0M
                  "\n"
4702
40.0M
                  "Unsupported range type given as input to a scanning "
4703
40.0M
                  "function.\n"
4704
40.0M
                  "file_marker_found cannot be used as an "
4705
40.0M
                  "source range type to scn::scan.\n"
4706
40.0M
                  "To read from stdin, use scn::input or scn::prompt, "
4707
40.0M
                  "and do not provide an explicit source range, "
4708
40.0M
                  "or use scn::scan with a FILE* directly.");
4709
40.0M
    static_assert(!std::is_same_v<T, insufficient_range>,
4710
40.0M
                  "\n"
4711
40.0M
                  "Unsupported range type given as input to a scanning "
4712
40.0M
                  "function.\n"
4713
40.0M
                  "In order to be scannable, a range needs to satisfy "
4714
40.0M
                  "`forward_range`. `input_range` is not sufficient.");
4715
40.0M
    static_assert(!std::is_same_v<T, invalid_input_range>,
4716
40.0M
                  "\n"
4717
40.0M
                  "Unsupported range type given as input to a scanning "
4718
40.0M
                  "function.\n"
4719
40.0M
                  "A range needs to model forward_range and have a valid "
4720
40.0M
                  "character type (char or wchar_t) to be scannable.\n"
4721
40.0M
                  "Examples of scannable ranges are std::string, "
4722
40.0M
                  "std::string_view, "
4723
40.0M
                  "std::vector<char>, and scn::istreambuf_view.\n"
4724
40.0M
                  "See the scnlib documentation for more details.");
4725
4726
40.0M
    return _make_scan_buffer::impl(range, priority_tag<4>{});
4727
40.0M
}
auto scn::v3::detail::make_scan_buffer<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > >(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > const&)
Line
Count
Source
4680
20.3M
{
4681
20.3M
    using T = decltype(_make_scan_buffer::impl(range, priority_tag<4>{}));
4682
4683
20.3M
    static_assert(!std::is_same_v<T, invalid_char_type>,
4684
20.3M
                  "\n"
4685
20.3M
                  "Unsupported range type given as input to a scanning "
4686
20.3M
                  "function.\n"
4687
20.3M
                  "A range needs to have a character type (value type) "
4688
20.3M
                  "of either `char` or `wchar_t` to be scannable.\n"
4689
20.3M
                  "For proper `wchar_t` support, <scn/xchar.h> needs "
4690
20.3M
                  "to be included.\n"
4691
20.3M
                  "See the scnlib documentation for more details.");
4692
20.3M
    static_assert(
4693
20.3M
        !std::is_same_v<T, custom_char_traits>,
4694
20.3M
        "\n"
4695
20.3M
        "Unsupported range type given as input to a scanning "
4696
20.3M
        "function.\n"
4697
20.3M
        "String types (std::basic_string, and std::basic_string_view) "
4698
20.3M
        "need to use std::char_traits. Strings with custom Traits are "
4699
20.3M
        "not supported.");
4700
20.3M
    static_assert(!std::is_same_v<T, file_marker_found>,
4701
20.3M
                  "\n"
4702
20.3M
                  "Unsupported range type given as input to a scanning "
4703
20.3M
                  "function.\n"
4704
20.3M
                  "file_marker_found cannot be used as an "
4705
20.3M
                  "source range type to scn::scan.\n"
4706
20.3M
                  "To read from stdin, use scn::input or scn::prompt, "
4707
20.3M
                  "and do not provide an explicit source range, "
4708
20.3M
                  "or use scn::scan with a FILE* directly.");
4709
20.3M
    static_assert(!std::is_same_v<T, insufficient_range>,
4710
20.3M
                  "\n"
4711
20.3M
                  "Unsupported range type given as input to a scanning "
4712
20.3M
                  "function.\n"
4713
20.3M
                  "In order to be scannable, a range needs to satisfy "
4714
20.3M
                  "`forward_range`. `input_range` is not sufficient.");
4715
20.3M
    static_assert(!std::is_same_v<T, invalid_input_range>,
4716
20.3M
                  "\n"
4717
20.3M
                  "Unsupported range type given as input to a scanning "
4718
20.3M
                  "function.\n"
4719
20.3M
                  "A range needs to model forward_range and have a valid "
4720
20.3M
                  "character type (char or wchar_t) to be scannable.\n"
4721
20.3M
                  "Examples of scannable ranges are std::string, "
4722
20.3M
                  "std::string_view, "
4723
20.3M
                  "std::vector<char>, and scn::istreambuf_view.\n"
4724
20.3M
                  "See the scnlib documentation for more details.");
4725
4726
20.3M
    return _make_scan_buffer::impl(range, priority_tag<4>{});
4727
20.3M
}
4728
4729
template <
4730
    typename Range,
4731
    std::enable_if_t<
4732
        !std::is_reference_v<Range> && !ranges::borrowed_range<Range> &&
4733
        !std::is_same_v<std::FILE*, std::remove_reference_t<Range>>>* = nullptr>
4734
auto make_scan_buffer(Range&&) = delete;
4735
}  // namespace detail
4736
4737
/////////////////////////////////////////////////////////////////
4738
// Argument type erasure
4739
/////////////////////////////////////////////////////////////////
4740
4741
namespace detail {
4742
enum class arg_type : unsigned char {
4743
    none_type,
4744
    schar_type,
4745
    short_type,
4746
    int_type,
4747
    long_type,
4748
    llong_type,
4749
    uchar_type,
4750
    ushort_type,
4751
    uint_type,
4752
    ulong_type,
4753
    ullong_type,
4754
    bool_type,
4755
    narrow_character_type,
4756
    wide_character_type,
4757
    code_point_type,
4758
    pointer_type,
4759
    float_type,
4760
    double_type,
4761
    ldouble_type,
4762
    narrow_string_view_type,
4763
    wide_string_view_type,
4764
    narrow_string_type,
4765
    wide_string_type,
4766
    narrow_regex_matches_type,
4767
    wide_regex_matches_type,
4768
    custom_type,
4769
    last_type = custom_type
4770
};
4771
4772
template <typename>
4773
inline constexpr bool is_type_disabled = SCN_DISABLE_TYPE_CUSTOM;
4774
4775
template <typename T, typename CharT>
4776
struct arg_type_constant
4777
    : std::integral_constant<arg_type, arg_type::custom_type> {
4778
    using type = T;
4779
};
4780
4781
#define SCN_TYPE_CONSTANT(Type, C, Disabled)              \
4782
    template <typename CharT>                             \
4783
    struct arg_type_constant<Type, CharT>                 \
4784
        : std::integral_constant<arg_type, arg_type::C> { \
4785
        using type = Type;                                \
4786
    };                                                    \
4787
    template <>                                           \
4788
    inline constexpr bool is_type_disabled<Type> = Disabled
4789
4790
SCN_TYPE_CONSTANT(signed char, schar_type, SCN_DISABLE_TYPE_SCHAR);
4791
SCN_TYPE_CONSTANT(short, short_type, SCN_DISABLE_TYPE_SHORT);
4792
SCN_TYPE_CONSTANT(int, int_type, SCN_DISABLE_TYPE_INT);
4793
SCN_TYPE_CONSTANT(long, long_type, SCN_DISABLE_TYPE_LONG);
4794
SCN_TYPE_CONSTANT(long long, llong_type, SCN_DISABLE_TYPE_LONG_LONG);
4795
SCN_TYPE_CONSTANT(unsigned char, uchar_type, SCN_DISABLE_TYPE_UCHAR);
4796
SCN_TYPE_CONSTANT(unsigned short, ushort_type, SCN_DISABLE_TYPE_USHORT);
4797
SCN_TYPE_CONSTANT(unsigned int, uint_type, SCN_DISABLE_TYPE_UINT);
4798
SCN_TYPE_CONSTANT(unsigned long, ulong_type, SCN_DISABLE_TYPE_ULONG);
4799
SCN_TYPE_CONSTANT(unsigned long long, ullong_type, SCN_DISABLE_TYPE_ULONG_LONG);
4800
SCN_TYPE_CONSTANT(bool, bool_type, SCN_DISABLE_TYPE_BOOL);
4801
SCN_TYPE_CONSTANT(char, narrow_character_type, SCN_DISABLE_TYPE_CHAR);
4802
SCN_TYPE_CONSTANT(wchar_t, wide_character_type, SCN_DISABLE_TYPE_CHAR);
4803
SCN_TYPE_CONSTANT(char32_t, code_point_type, SCN_DISABLE_TYPE_CHAR32);
4804
SCN_TYPE_CONSTANT(void*, pointer_type, SCN_DISABLE_TYPE_POINTER);
4805
SCN_TYPE_CONSTANT(float, float_type, SCN_DISABLE_TYPE_FLOAT);
4806
SCN_TYPE_CONSTANT(double, double_type, SCN_DISABLE_TYPE_DOUBLE);
4807
SCN_TYPE_CONSTANT(long double, ldouble_type, SCN_DISABLE_TYPE_LONG_DOUBLE);
4808
SCN_TYPE_CONSTANT(std::string_view,
4809
                  narrow_string_view_type,
4810
                  SCN_DISABLE_TYPE_STRING_VIEW);
4811
SCN_TYPE_CONSTANT(std::wstring_view,
4812
                  wide_string_view_type,
4813
                  SCN_DISABLE_TYPE_STRING_VIEW);
4814
SCN_TYPE_CONSTANT(std::string, narrow_string_type, SCN_DISABLE_TYPE_STRING);
4815
SCN_TYPE_CONSTANT(std::wstring, wide_string_type, SCN_DISABLE_TYPE_STRING);
4816
SCN_TYPE_CONSTANT(regex_matches, narrow_regex_matches_type, SCN_DISABLE_REGEX);
4817
SCN_TYPE_CONSTANT(wregex_matches, wide_regex_matches_type, SCN_DISABLE_REGEX);
4818
4819
#undef SCN_TYPE_CONSTANT
4820
4821
struct custom_value_type {
4822
    void* value;
4823
    scan_error (*scan)(void* arg, void* pctx, void* ctx);
4824
};
4825
4826
struct unscannable {};
4827
struct unscannable_char : unscannable {};
4828
struct unscannable_const : unscannable {};
4829
struct unscannable_disabled : unscannable {
4830
    unscannable_disabled() = default;
4831
4832
    template <typename T>
4833
    constexpr unscannable_disabled(T&&)
4834
    {
4835
    }
4836
};
4837
4838
struct needs_context_tag {};
4839
4840
template <typename Context>
4841
struct context_tag {
4842
    using type = Context;
4843
};
4844
4845
template <typename T, typename Context>
4846
struct custom_wrapper {
4847
    using context_type = Context;
4848
    T& val;
4849
};
4850
4851
class arg_value {
4852
public:
4853
    // trivial default initialization in constexpr
4854
#if defined(__cpp_constexpr) && __cpp_constexpr >= 201907L && \
4855
    SCN_STD > SCN_STD_20
4856
    constexpr
4857
#endif
4858
70.3M
    arg_value() = default;
4859
4860
    template <typename T>
4861
    explicit constexpr arg_value(T& val) : ref_value{std::addressof(val)}
4862
70.3M
    {
4863
70.3M
    }
scn::v3::detail::arg_value::arg_value<char>(char&)
Line
Count
Source
4862
8.37k
    {
4863
8.37k
    }
scn::v3::detail::arg_value::arg_value<int>(int&)
Line
Count
Source
4862
1.03M
    {
4863
1.03M
    }
scn::v3::detail::arg_value::arg_value<unsigned int>(unsigned int&)
Line
Count
Source
4862
922k
    {
4863
922k
    }
scn::v3::detail::arg_value::arg_value<double>(double&)
Line
Count
Source
4862
1.82M
    {
4863
1.82M
    }
scn::v3::detail::arg_value::arg_value<bool>(bool&)
Line
Count
Source
4862
25.1k
    {
4863
25.1k
    }
scn::v3::detail::arg_value::arg_value<void*>(void*&)
Line
Count
Source
4862
25.1k
    {
4863
25.1k
    }
scn::v3::detail::arg_value::arg_value<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&)
Line
Count
Source
4862
348k
    {
4863
348k
    }
scn::v3::detail::arg_value::arg_value<std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >(std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >&)
Line
Count
Source
4862
39.2M
    {
4863
39.2M
    }
scn::v3::detail::arg_value::arg_value<std::__1::basic_string_view<char, std::__1::char_traits<char> > >(std::__1::basic_string_view<char, std::__1::char_traits<char> >&)
Line
Count
Source
4862
169k
    {
4863
169k
    }
scn::v3::detail::arg_value::arg_value<wchar_t>(wchar_t&)
Line
Count
Source
4862
16.7k
    {
4863
16.7k
    }
scn::v3::detail::arg_value::arg_value<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&)
Line
Count
Source
4862
19.6M
    {
4863
19.6M
    }
scn::v3::detail::arg_value::arg_value<signed char>(signed char&)
Line
Count
Source
4862
842k
    {
4863
842k
    }
scn::v3::detail::arg_value::arg_value<unsigned char>(unsigned char&)
Line
Count
Source
4862
814k
    {
4863
814k
    }
scn::v3::detail::arg_value::arg_value<long long>(long long&)
Line
Count
Source
4862
1.02M
    {
4863
1.02M
    }
scn::v3::detail::arg_value::arg_value<unsigned long long>(unsigned long long&)
Line
Count
Source
4862
905k
    {
4863
905k
    }
scn::v3::detail::arg_value::arg_value<float>(float&)
Line
Count
Source
4862
1.67M
    {
4863
1.67M
    }
scn::v3::detail::arg_value::arg_value<long double>(long double&)
Line
Count
Source
4862
1.82M
    {
4863
1.82M
    }
4864
4865
    template <typename T, typename Context>
4866
    explicit constexpr arg_value(custom_wrapper<T, Context> val)
4867
        : custom_value{static_cast<void*>(&val.val),
4868
                       scan_custom_arg<T, Context>}
4869
    {
4870
    }
4871
4872
    arg_value(unscannable);
4873
    arg_value(unscannable_char);
4874
    arg_value(unscannable_const);
4875
    arg_value(unscannable_disabled);
4876
4877
    union {
4878
        void* ref_value{nullptr};
4879
        custom_value_type custom_value;
4880
    };
4881
4882
private:
4883
    template <typename T, typename Context>
4884
    static scan_error scan_custom_arg(void* arg, void* pctx, void* ctx)
4885
    {
4886
        static_assert(!is_type_disabled<T>,
4887
                      "Scanning of custom types is disabled by "
4888
                      "SCN_DISABLE_TYPE_CUSTOM");
4889
        SCN_EXPECT(arg && pctx && ctx);
4890
4891
        using context_type = Context;
4892
        using parse_context_type = typename context_type::parse_context_type;
4893
        using scanner_type = typename context_type::template scanner_type<T>;
4894
4895
        auto s = scanner_type{};
4896
4897
        auto& arg_ref = *static_cast<T*>(arg);
4898
        auto& pctx_ref = *static_cast<parse_context_type*>(pctx);
4899
        auto& ctx_ref = *static_cast<context_type*>(ctx);
4900
4901
        SCN_TRY_ERR(_, s.parse(pctx_ref));
4902
        SCN_UNUSED(_);
4903
        SCN_TRY_ERR(it, s.scan(arg_ref, ctx_ref));
4904
        ctx_ref.advance_to(SCN_MOVE(it));
4905
4906
        return {};
4907
    }
4908
};
4909
4910
template <typename CharT>
4911
struct arg_mapper {
4912
    using char_type = CharT;
4913
    using other_char_type =
4914
        std::conditional_t<std::is_same_v<char_type, char>, wchar_t, char>;
4915
4916
#define SCN_ARG_MAPPER(T)                                                    \
4917
    static auto map(T& val)                                                  \
4918
        -> std::conditional_t<is_type_disabled<T>, unscannable_disabled, T&> \
4919
70.3M
    {                                                                        \
4920
70.3M
        return val;                                                          \
4921
70.3M
    }
scn::v3::detail::arg_mapper<char>::map(int&)
Line
Count
Source
4919
856k
    {                                                                        \
4920
856k
        return val;                                                          \
4921
856k
    }
scn::v3::detail::arg_mapper<char>::map(unsigned int&)
Line
Count
Source
4919
741k
    {                                                                        \
4920
741k
        return val;                                                          \
4921
741k
    }
scn::v3::detail::arg_mapper<char>::map(double&)
Line
Count
Source
4919
1.62M
    {                                                                        \
4920
1.62M
        return val;                                                          \
4921
1.62M
    }
scn::v3::detail::arg_mapper<char>::map(bool&)
Line
Count
Source
4919
8.37k
    {                                                                        \
4920
8.37k
        return val;                                                          \
4921
8.37k
    }
scn::v3::detail::arg_mapper<char>::map(void*&)
Line
Count
Source
4919
8.37k
    {                                                                        \
4920
8.37k
        return val;                                                          \
4921
8.37k
    }
scn::v3::detail::arg_mapper<char>::map(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&)
Line
Count
Source
4919
332k
    {                                                                        \
4920
332k
        return val;                                                          \
4921
332k
    }
scn::v3::detail::arg_mapper<char>::map(std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >&)
Line
Count
Source
4919
8.37k
    {                                                                        \
4920
8.37k
        return val;                                                          \
4921
8.37k
    }
scn::v3::detail::arg_mapper<char>::map(std::__1::basic_string_view<char, std::__1::char_traits<char> >&)
Line
Count
Source
4919
169k
    {                                                                        \
4920
169k
        return val;                                                          \
4921
169k
    }
scn::v3::detail::arg_mapper<wchar_t>::map(wchar_t&)
Line
Count
Source
4919
16.7k
    {                                                                        \
4920
16.7k
        return val;                                                          \
4921
16.7k
    }
scn::v3::detail::arg_mapper<wchar_t>::map(int&)
Line
Count
Source
4919
181k
    {                                                                        \
4920
181k
        return val;                                                          \
4921
181k
    }
scn::v3::detail::arg_mapper<wchar_t>::map(unsigned int&)
Line
Count
Source
4919
181k
    {                                                                        \
4920
181k
        return val;                                                          \
4921
181k
    }
scn::v3::detail::arg_mapper<wchar_t>::map(double&)
Line
Count
Source
4919
203k
    {                                                                        \
4920
203k
        return val;                                                          \
4921
203k
    }
scn::v3::detail::arg_mapper<wchar_t>::map(bool&)
Line
Count
Source
4919
16.7k
    {                                                                        \
4920
16.7k
        return val;                                                          \
4921
16.7k
    }
scn::v3::detail::arg_mapper<wchar_t>::map(void*&)
Line
Count
Source
4919
16.7k
    {                                                                        \
4920
16.7k
        return val;                                                          \
4921
16.7k
    }
scn::v3::detail::arg_mapper<wchar_t>::map(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&)
Line
Count
Source
4919
16.7k
    {                                                                        \
4920
16.7k
        return val;                                                          \
4921
16.7k
    }
scn::v3::detail::arg_mapper<wchar_t>::map(std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >&)
Line
Count
Source
4919
39.2M
    {                                                                        \
4920
39.2M
        return val;                                                          \
4921
39.2M
    }
scn::v3::detail::arg_mapper<wchar_t>::map(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&)
Line
Count
Source
4919
19.6M
    {                                                                        \
4920
19.6M
        return val;                                                          \
4921
19.6M
    }
scn::v3::detail::arg_mapper<char>::map(signed char&)
Line
Count
Source
4919
677k
    {                                                                        \
4920
677k
        return val;                                                          \
4921
677k
    }
scn::v3::detail::arg_mapper<char>::map(unsigned char&)
Line
Count
Source
4919
650k
    {                                                                        \
4920
650k
        return val;                                                          \
4921
650k
    }
scn::v3::detail::arg_mapper<char>::map(long long&)
Line
Count
Source
4919
863k
    {                                                                        \
4920
863k
        return val;                                                          \
4921
863k
    }
scn::v3::detail::arg_mapper<char>::map(unsigned long long&)
Line
Count
Source
4919
741k
    {                                                                        \
4920
741k
        return val;                                                          \
4921
741k
    }
scn::v3::detail::arg_mapper<wchar_t>::map(signed char&)
Line
Count
Source
4919
164k
    {                                                                        \
4920
164k
        return val;                                                          \
4921
164k
    }
scn::v3::detail::arg_mapper<wchar_t>::map(unsigned char&)
Line
Count
Source
4919
164k
    {                                                                        \
4920
164k
        return val;                                                          \
4921
164k
    }
scn::v3::detail::arg_mapper<wchar_t>::map(long long&)
Line
Count
Source
4919
165k
    {                                                                        \
4920
165k
        return val;                                                          \
4921
165k
    }
scn::v3::detail::arg_mapper<wchar_t>::map(unsigned long long&)
Line
Count
Source
4919
164k
    {                                                                        \
4920
164k
        return val;                                                          \
4921
164k
    }
scn::v3::detail::arg_mapper<char>::map(float&)
Line
Count
Source
4919
1.49M
    {                                                                        \
4920
1.49M
        return val;                                                          \
4921
1.49M
    }
scn::v3::detail::arg_mapper<char>::map(long double&)
Line
Count
Source
4919
1.63M
    {                                                                        \
4920
1.63M
        return val;                                                          \
4921
1.63M
    }
scn::v3::detail::arg_mapper<wchar_t>::map(float&)
Line
Count
Source
4919
186k
    {                                                                        \
4920
186k
        return val;                                                          \
4921
186k
    }
scn::v3::detail::arg_mapper<wchar_t>::map(long double&)
Line
Count
Source
4919
186k
    {                                                                        \
4920
186k
        return val;                                                          \
4921
186k
    }
4922
4923
    SCN_ARG_MAPPER(signed char)
4924
    SCN_ARG_MAPPER(short)
4925
    SCN_ARG_MAPPER(int)
4926
    SCN_ARG_MAPPER(long)
4927
    SCN_ARG_MAPPER(long long)
4928
    SCN_ARG_MAPPER(unsigned char)
4929
    SCN_ARG_MAPPER(unsigned short)
4930
    SCN_ARG_MAPPER(unsigned)
4931
    SCN_ARG_MAPPER(unsigned long)
4932
    SCN_ARG_MAPPER(unsigned long long)
4933
    SCN_ARG_MAPPER(wchar_t)
4934
    SCN_ARG_MAPPER(char32_t)
4935
    SCN_ARG_MAPPER(bool)
4936
    SCN_ARG_MAPPER(void*)
4937
    SCN_ARG_MAPPER(float)
4938
    SCN_ARG_MAPPER(double)
4939
    SCN_ARG_MAPPER(long double)
4940
4941
    SCN_ARG_MAPPER(std::basic_string_view<char_type>)
4942
    SCN_ARG_MAPPER(std::string)
4943
    SCN_ARG_MAPPER(std::wstring)
4944
4945
#undef SCN_ARG_MAPPER
4946
4947
    static decltype(auto) map(char& val)
4948
8.37k
    {
4949
8.37k
        if constexpr (std::is_same_v<char_type, char> &&
4950
8.37k
                      !is_type_disabled<char_type>) {
4951
8.37k
            return val;
4952
8.37k
        }
4953
8.37k
        else if constexpr (is_type_disabled<char_type>) {
4954
8.37k
            return unscannable_disabled{val};
4955
8.37k
        }
4956
8.37k
        else {
4957
8.37k
            SCN_UNUSED(val);
4958
8.37k
            return unscannable_char{};
4959
8.37k
        }
4960
8.37k
    }
4961
4962
    static decltype(auto) map(basic_regex_matches<char_type>& val)
4963
    {
4964
        if constexpr (is_type_disabled<char_type>) {
4965
            return unscannable_disabled{val};
4966
        }
4967
        else {
4968
            return val;
4969
        }
4970
    }
4971
4972
    static unscannable_char map(std::basic_string_view<other_char_type>&)
4973
    {
4974
        return {};
4975
    }
4976
    static unscannable_char map(basic_regex_matches<other_char_type>&)
4977
    {
4978
        return {};
4979
    }
4980
4981
    template <typename T>
4982
    static std::enable_if_t<std::is_constructible_v<scanner<T, char_type>>,
4983
                            needs_context_tag>
4984
    map(T&)
4985
    {
4986
        return {};
4987
    }
4988
4989
    template <typename T, typename Context>
4990
    static std::enable_if_t<std::is_constructible_v<scanner<T, char_type>>,
4991
                            custom_wrapper<T, Context>>
4992
    map(T& val, context_tag<Context>)
4993
    {
4994
        return {val};
4995
    }
4996
4997
    static unscannable map(...)
4998
    {
4999
        return {};
5000
    }
5001
};
5002
5003
template <typename T, typename CharT>
5004
using mapped_type_constant = arg_type_constant<
5005
    std::remove_reference_t<decltype(arg_mapper<CharT>().map(SCN_DECLVAL(T&)))>,
5006
    CharT>;
5007
5008
template <typename T, typename CharT>
5009
using is_scannable = std::integral_constant<
5010
    bool,
5011
    !std::is_base_of_v<
5012
        unscannable,
5013
        remove_cvref_t<decltype(arg_mapper<CharT>().map(SCN_DECLVAL(T&)))>>>;
5014
5015
constexpr std::size_t packed_arg_bits = 5;
5016
static_assert((1 << packed_arg_bits) >= static_cast<int>(arg_type::last_type));
5017
constexpr std::size_t bits_in_sz = sizeof(std::size_t) * 8;
5018
constexpr std::size_t max_packed_args = (bits_in_sz - 2) / packed_arg_bits - 1;
5019
constexpr std::size_t is_unpacked_bit = std::size_t{1} << (bits_in_sz - 1);
5020
constexpr std::size_t has_custom_types_bit = std::size_t{1} << (bits_in_sz - 2);
5021
5022
template <typename>
5023
constexpr size_t encode_types_impl()
5024
0
{
5025
0
    return 0;
5026
0
}
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types_impl<char>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types_impl<wchar_t>()
5027
template <typename CharT, typename T, typename... Others>
5028
constexpr size_t encode_types_impl()
5029
0
{
5030
0
    return static_cast<unsigned>(mapped_type_constant<T, CharT>::value) |
5031
0
           (encode_types_impl<CharT, Others...>() << packed_arg_bits);
5032
0
}
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types_impl<char, char>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types_impl<char, int>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types_impl<char, unsigned int>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types_impl<char, double>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types_impl<char, bool>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types_impl<char, void*>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types_impl<char, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types_impl<char, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types_impl<char, std::__1::basic_string_view<char, std::__1::char_traits<char> >>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types_impl<wchar_t, wchar_t>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types_impl<wchar_t, int>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types_impl<wchar_t, unsigned int>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types_impl<wchar_t, double>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types_impl<wchar_t, bool>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types_impl<wchar_t, void*>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types_impl<wchar_t, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types_impl<wchar_t, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types_impl<wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types_impl<char, signed char>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types_impl<char, unsigned char>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types_impl<char, long long>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types_impl<char, unsigned long long>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types_impl<wchar_t, signed char>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types_impl<wchar_t, unsigned char>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types_impl<wchar_t, long long>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types_impl<wchar_t, unsigned long long>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types_impl<char, float>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types_impl<char, long double>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types_impl<wchar_t, float>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types_impl<wchar_t, long double>()
5033
5034
template <typename CharT, typename... Ts>
5035
constexpr size_t encode_types()
5036
0
{
5037
0
    if constexpr (sizeof...(Ts) < (1 << packed_arg_bits)) {
5038
0
        return sizeof...(Ts) |
5039
0
               (encode_types_impl<CharT, Ts...>() << packed_arg_bits);
5040
0
    }
5041
0
    else {
5042
0
        SCN_EXPECT(false);
5043
0
        SCN_UNREACHABLE;
5044
0
    }
5045
0
}
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types<char, char>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types<char, int>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types<char, unsigned int>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types<char, double>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types<char, bool>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types<char, void*>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types<char, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types<char, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types<char, std::__1::basic_string_view<char, std::__1::char_traits<char> > >()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types<wchar_t, wchar_t>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types<wchar_t, int>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types<wchar_t, unsigned int>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types<wchar_t, double>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types<wchar_t, bool>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types<wchar_t, void*>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types<wchar_t, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types<wchar_t, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types<wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types<char, signed char>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types<char, unsigned char>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types<char, long long>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types<char, unsigned long long>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types<wchar_t, signed char>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types<wchar_t, unsigned char>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types<wchar_t, long long>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types<wchar_t, unsigned long long>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types<char, float>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types<char, long double>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types<wchar_t, float>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types<wchar_t, long double>()
5046
5047
template <typename Arg>
5048
constexpr auto make_value_impl(Arg&& arg)
5049
70.3M
{
5050
70.3M
    using arg_nocvref_t = remove_cvref_t<Arg>;
5051
70.3M
    static_assert(!std::is_same_v<arg_nocvref_t, needs_context_tag>);
5052
5053
70.3M
    constexpr bool scannable_char =
5054
70.3M
        !std::is_same_v<arg_nocvref_t, unscannable_char>;
5055
70.3M
    static_assert(scannable_char,
5056
70.3M
                  "Cannot scan an argument of an unsupported character "
5057
70.3M
                  "type (i.e. char from a wchar_t source)");
5058
5059
70.3M
    constexpr bool scannable_const =
5060
70.3M
        !std::is_same_v<arg_nocvref_t, unscannable_const>;
5061
70.3M
    static_assert(scannable_const, "Cannot scan a const argument");
5062
5063
70.3M
    constexpr bool scannable_disabled =
5064
70.3M
        !std::is_same_v<arg_nocvref_t, unscannable_disabled>;
5065
70.3M
    static_assert(scannable_disabled,
5066
70.3M
                  "Cannot scan an argument that has been disabled by "
5067
70.3M
                  "flag (SCN_DISABLE_TYPE_*)");
5068
5069
70.3M
    constexpr bool scannable = !std::is_same_v<arg_nocvref_t, unscannable>;
5070
70.3M
    static_assert(
5071
70.3M
        scannable,
5072
70.3M
        "Cannot scan an argument. To make a type T scannable, provide "
5073
70.3M
        "a scn::scanner<T, CharT> specialization.");
5074
5075
70.3M
    return arg_value{arg};
5076
70.3M
}
auto scn::v3::detail::make_value_impl<char&>(char&)
Line
Count
Source
5049
8.37k
{
5050
8.37k
    using arg_nocvref_t = remove_cvref_t<Arg>;
5051
8.37k
    static_assert(!std::is_same_v<arg_nocvref_t, needs_context_tag>);
5052
5053
8.37k
    constexpr bool scannable_char =
5054
8.37k
        !std::is_same_v<arg_nocvref_t, unscannable_char>;
5055
8.37k
    static_assert(scannable_char,
5056
8.37k
                  "Cannot scan an argument of an unsupported character "
5057
8.37k
                  "type (i.e. char from a wchar_t source)");
5058
5059
8.37k
    constexpr bool scannable_const =
5060
8.37k
        !std::is_same_v<arg_nocvref_t, unscannable_const>;
5061
8.37k
    static_assert(scannable_const, "Cannot scan a const argument");
5062
5063
8.37k
    constexpr bool scannable_disabled =
5064
8.37k
        !std::is_same_v<arg_nocvref_t, unscannable_disabled>;
5065
8.37k
    static_assert(scannable_disabled,
5066
8.37k
                  "Cannot scan an argument that has been disabled by "
5067
8.37k
                  "flag (SCN_DISABLE_TYPE_*)");
5068
5069
8.37k
    constexpr bool scannable = !std::is_same_v<arg_nocvref_t, unscannable>;
5070
8.37k
    static_assert(
5071
8.37k
        scannable,
5072
8.37k
        "Cannot scan an argument. To make a type T scannable, provide "
5073
8.37k
        "a scn::scanner<T, CharT> specialization.");
5074
5075
8.37k
    return arg_value{arg};
5076
8.37k
}
auto scn::v3::detail::make_value_impl<int&>(int&)
Line
Count
Source
5049
1.03M
{
5050
1.03M
    using arg_nocvref_t = remove_cvref_t<Arg>;
5051
1.03M
    static_assert(!std::is_same_v<arg_nocvref_t, needs_context_tag>);
5052
5053
1.03M
    constexpr bool scannable_char =
5054
1.03M
        !std::is_same_v<arg_nocvref_t, unscannable_char>;
5055
1.03M
    static_assert(scannable_char,
5056
1.03M
                  "Cannot scan an argument of an unsupported character "
5057
1.03M
                  "type (i.e. char from a wchar_t source)");
5058
5059
1.03M
    constexpr bool scannable_const =
5060
1.03M
        !std::is_same_v<arg_nocvref_t, unscannable_const>;
5061
1.03M
    static_assert(scannable_const, "Cannot scan a const argument");
5062
5063
1.03M
    constexpr bool scannable_disabled =
5064
1.03M
        !std::is_same_v<arg_nocvref_t, unscannable_disabled>;
5065
1.03M
    static_assert(scannable_disabled,
5066
1.03M
                  "Cannot scan an argument that has been disabled by "
5067
1.03M
                  "flag (SCN_DISABLE_TYPE_*)");
5068
5069
1.03M
    constexpr bool scannable = !std::is_same_v<arg_nocvref_t, unscannable>;
5070
1.03M
    static_assert(
5071
1.03M
        scannable,
5072
1.03M
        "Cannot scan an argument. To make a type T scannable, provide "
5073
1.03M
        "a scn::scanner<T, CharT> specialization.");
5074
5075
1.03M
    return arg_value{arg};
5076
1.03M
}
auto scn::v3::detail::make_value_impl<unsigned int&>(unsigned int&)
Line
Count
Source
5049
922k
{
5050
922k
    using arg_nocvref_t = remove_cvref_t<Arg>;
5051
922k
    static_assert(!std::is_same_v<arg_nocvref_t, needs_context_tag>);
5052
5053
922k
    constexpr bool scannable_char =
5054
922k
        !std::is_same_v<arg_nocvref_t, unscannable_char>;
5055
922k
    static_assert(scannable_char,
5056
922k
                  "Cannot scan an argument of an unsupported character "
5057
922k
                  "type (i.e. char from a wchar_t source)");
5058
5059
922k
    constexpr bool scannable_const =
5060
922k
        !std::is_same_v<arg_nocvref_t, unscannable_const>;
5061
922k
    static_assert(scannable_const, "Cannot scan a const argument");
5062
5063
922k
    constexpr bool scannable_disabled =
5064
922k
        !std::is_same_v<arg_nocvref_t, unscannable_disabled>;
5065
922k
    static_assert(scannable_disabled,
5066
922k
                  "Cannot scan an argument that has been disabled by "
5067
922k
                  "flag (SCN_DISABLE_TYPE_*)");
5068
5069
922k
    constexpr bool scannable = !std::is_same_v<arg_nocvref_t, unscannable>;
5070
922k
    static_assert(
5071
922k
        scannable,
5072
922k
        "Cannot scan an argument. To make a type T scannable, provide "
5073
922k
        "a scn::scanner<T, CharT> specialization.");
5074
5075
922k
    return arg_value{arg};
5076
922k
}
auto scn::v3::detail::make_value_impl<double&>(double&)
Line
Count
Source
5049
1.82M
{
5050
1.82M
    using arg_nocvref_t = remove_cvref_t<Arg>;
5051
1.82M
    static_assert(!std::is_same_v<arg_nocvref_t, needs_context_tag>);
5052
5053
1.82M
    constexpr bool scannable_char =
5054
1.82M
        !std::is_same_v<arg_nocvref_t, unscannable_char>;
5055
1.82M
    static_assert(scannable_char,
5056
1.82M
                  "Cannot scan an argument of an unsupported character "
5057
1.82M
                  "type (i.e. char from a wchar_t source)");
5058
5059
1.82M
    constexpr bool scannable_const =
5060
1.82M
        !std::is_same_v<arg_nocvref_t, unscannable_const>;
5061
1.82M
    static_assert(scannable_const, "Cannot scan a const argument");
5062
5063
1.82M
    constexpr bool scannable_disabled =
5064
1.82M
        !std::is_same_v<arg_nocvref_t, unscannable_disabled>;
5065
1.82M
    static_assert(scannable_disabled,
5066
1.82M
                  "Cannot scan an argument that has been disabled by "
5067
1.82M
                  "flag (SCN_DISABLE_TYPE_*)");
5068
5069
1.82M
    constexpr bool scannable = !std::is_same_v<arg_nocvref_t, unscannable>;
5070
1.82M
    static_assert(
5071
1.82M
        scannable,
5072
1.82M
        "Cannot scan an argument. To make a type T scannable, provide "
5073
1.82M
        "a scn::scanner<T, CharT> specialization.");
5074
5075
1.82M
    return arg_value{arg};
5076
1.82M
}
auto scn::v3::detail::make_value_impl<bool&>(bool&)
Line
Count
Source
5049
25.1k
{
5050
25.1k
    using arg_nocvref_t = remove_cvref_t<Arg>;
5051
25.1k
    static_assert(!std::is_same_v<arg_nocvref_t, needs_context_tag>);
5052
5053
25.1k
    constexpr bool scannable_char =
5054
25.1k
        !std::is_same_v<arg_nocvref_t, unscannable_char>;
5055
25.1k
    static_assert(scannable_char,
5056
25.1k
                  "Cannot scan an argument of an unsupported character "
5057
25.1k
                  "type (i.e. char from a wchar_t source)");
5058
5059
25.1k
    constexpr bool scannable_const =
5060
25.1k
        !std::is_same_v<arg_nocvref_t, unscannable_const>;
5061
25.1k
    static_assert(scannable_const, "Cannot scan a const argument");
5062
5063
25.1k
    constexpr bool scannable_disabled =
5064
25.1k
        !std::is_same_v<arg_nocvref_t, unscannable_disabled>;
5065
25.1k
    static_assert(scannable_disabled,
5066
25.1k
                  "Cannot scan an argument that has been disabled by "
5067
25.1k
                  "flag (SCN_DISABLE_TYPE_*)");
5068
5069
25.1k
    constexpr bool scannable = !std::is_same_v<arg_nocvref_t, unscannable>;
5070
25.1k
    static_assert(
5071
25.1k
        scannable,
5072
25.1k
        "Cannot scan an argument. To make a type T scannable, provide "
5073
25.1k
        "a scn::scanner<T, CharT> specialization.");
5074
5075
25.1k
    return arg_value{arg};
5076
25.1k
}
auto scn::v3::detail::make_value_impl<void*&>(void*&)
Line
Count
Source
5049
25.1k
{
5050
25.1k
    using arg_nocvref_t = remove_cvref_t<Arg>;
5051
25.1k
    static_assert(!std::is_same_v<arg_nocvref_t, needs_context_tag>);
5052
5053
25.1k
    constexpr bool scannable_char =
5054
25.1k
        !std::is_same_v<arg_nocvref_t, unscannable_char>;
5055
25.1k
    static_assert(scannable_char,
5056
25.1k
                  "Cannot scan an argument of an unsupported character "
5057
25.1k
                  "type (i.e. char from a wchar_t source)");
5058
5059
25.1k
    constexpr bool scannable_const =
5060
25.1k
        !std::is_same_v<arg_nocvref_t, unscannable_const>;
5061
25.1k
    static_assert(scannable_const, "Cannot scan a const argument");
5062
5063
25.1k
    constexpr bool scannable_disabled =
5064
25.1k
        !std::is_same_v<arg_nocvref_t, unscannable_disabled>;
5065
25.1k
    static_assert(scannable_disabled,
5066
25.1k
                  "Cannot scan an argument that has been disabled by "
5067
25.1k
                  "flag (SCN_DISABLE_TYPE_*)");
5068
5069
25.1k
    constexpr bool scannable = !std::is_same_v<arg_nocvref_t, unscannable>;
5070
25.1k
    static_assert(
5071
25.1k
        scannable,
5072
25.1k
        "Cannot scan an argument. To make a type T scannable, provide "
5073
25.1k
        "a scn::scanner<T, CharT> specialization.");
5074
5075
25.1k
    return arg_value{arg};
5076
25.1k
}
auto scn::v3::detail::make_value_impl<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&)
Line
Count
Source
5049
348k
{
5050
348k
    using arg_nocvref_t = remove_cvref_t<Arg>;
5051
348k
    static_assert(!std::is_same_v<arg_nocvref_t, needs_context_tag>);
5052
5053
348k
    constexpr bool scannable_char =
5054
348k
        !std::is_same_v<arg_nocvref_t, unscannable_char>;
5055
348k
    static_assert(scannable_char,
5056
348k
                  "Cannot scan an argument of an unsupported character "
5057
348k
                  "type (i.e. char from a wchar_t source)");
5058
5059
348k
    constexpr bool scannable_const =
5060
348k
        !std::is_same_v<arg_nocvref_t, unscannable_const>;
5061
348k
    static_assert(scannable_const, "Cannot scan a const argument");
5062
5063
348k
    constexpr bool scannable_disabled =
5064
348k
        !std::is_same_v<arg_nocvref_t, unscannable_disabled>;
5065
348k
    static_assert(scannable_disabled,
5066
348k
                  "Cannot scan an argument that has been disabled by "
5067
348k
                  "flag (SCN_DISABLE_TYPE_*)");
5068
5069
348k
    constexpr bool scannable = !std::is_same_v<arg_nocvref_t, unscannable>;
5070
348k
    static_assert(
5071
348k
        scannable,
5072
348k
        "Cannot scan an argument. To make a type T scannable, provide "
5073
348k
        "a scn::scanner<T, CharT> specialization.");
5074
5075
348k
    return arg_value{arg};
5076
348k
}
auto scn::v3::detail::make_value_impl<std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >&>(std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >&)
Line
Count
Source
5049
39.2M
{
5050
39.2M
    using arg_nocvref_t = remove_cvref_t<Arg>;
5051
39.2M
    static_assert(!std::is_same_v<arg_nocvref_t, needs_context_tag>);
5052
5053
39.2M
    constexpr bool scannable_char =
5054
39.2M
        !std::is_same_v<arg_nocvref_t, unscannable_char>;
5055
39.2M
    static_assert(scannable_char,
5056
39.2M
                  "Cannot scan an argument of an unsupported character "
5057
39.2M
                  "type (i.e. char from a wchar_t source)");
5058
5059
39.2M
    constexpr bool scannable_const =
5060
39.2M
        !std::is_same_v<arg_nocvref_t, unscannable_const>;
5061
39.2M
    static_assert(scannable_const, "Cannot scan a const argument");
5062
5063
39.2M
    constexpr bool scannable_disabled =
5064
39.2M
        !std::is_same_v<arg_nocvref_t, unscannable_disabled>;
5065
39.2M
    static_assert(scannable_disabled,
5066
39.2M
                  "Cannot scan an argument that has been disabled by "
5067
39.2M
                  "flag (SCN_DISABLE_TYPE_*)");
5068
5069
39.2M
    constexpr bool scannable = !std::is_same_v<arg_nocvref_t, unscannable>;
5070
39.2M
    static_assert(
5071
39.2M
        scannable,
5072
39.2M
        "Cannot scan an argument. To make a type T scannable, provide "
5073
39.2M
        "a scn::scanner<T, CharT> specialization.");
5074
5075
39.2M
    return arg_value{arg};
5076
39.2M
}
auto scn::v3::detail::make_value_impl<std::__1::basic_string_view<char, std::__1::char_traits<char> >&>(std::__1::basic_string_view<char, std::__1::char_traits<char> >&)
Line
Count
Source
5049
169k
{
5050
169k
    using arg_nocvref_t = remove_cvref_t<Arg>;
5051
169k
    static_assert(!std::is_same_v<arg_nocvref_t, needs_context_tag>);
5052
5053
169k
    constexpr bool scannable_char =
5054
169k
        !std::is_same_v<arg_nocvref_t, unscannable_char>;
5055
169k
    static_assert(scannable_char,
5056
169k
                  "Cannot scan an argument of an unsupported character "
5057
169k
                  "type (i.e. char from a wchar_t source)");
5058
5059
169k
    constexpr bool scannable_const =
5060
169k
        !std::is_same_v<arg_nocvref_t, unscannable_const>;
5061
169k
    static_assert(scannable_const, "Cannot scan a const argument");
5062
5063
169k
    constexpr bool scannable_disabled =
5064
169k
        !std::is_same_v<arg_nocvref_t, unscannable_disabled>;
5065
169k
    static_assert(scannable_disabled,
5066
169k
                  "Cannot scan an argument that has been disabled by "
5067
169k
                  "flag (SCN_DISABLE_TYPE_*)");
5068
5069
169k
    constexpr bool scannable = !std::is_same_v<arg_nocvref_t, unscannable>;
5070
169k
    static_assert(
5071
169k
        scannable,
5072
169k
        "Cannot scan an argument. To make a type T scannable, provide "
5073
169k
        "a scn::scanner<T, CharT> specialization.");
5074
5075
169k
    return arg_value{arg};
5076
169k
}
auto scn::v3::detail::make_value_impl<wchar_t&>(wchar_t&)
Line
Count
Source
5049
16.7k
{
5050
16.7k
    using arg_nocvref_t = remove_cvref_t<Arg>;
5051
16.7k
    static_assert(!std::is_same_v<arg_nocvref_t, needs_context_tag>);
5052
5053
16.7k
    constexpr bool scannable_char =
5054
16.7k
        !std::is_same_v<arg_nocvref_t, unscannable_char>;
5055
16.7k
    static_assert(scannable_char,
5056
16.7k
                  "Cannot scan an argument of an unsupported character "
5057
16.7k
                  "type (i.e. char from a wchar_t source)");
5058
5059
16.7k
    constexpr bool scannable_const =
5060
16.7k
        !std::is_same_v<arg_nocvref_t, unscannable_const>;
5061
16.7k
    static_assert(scannable_const, "Cannot scan a const argument");
5062
5063
16.7k
    constexpr bool scannable_disabled =
5064
16.7k
        !std::is_same_v<arg_nocvref_t, unscannable_disabled>;
5065
16.7k
    static_assert(scannable_disabled,
5066
16.7k
                  "Cannot scan an argument that has been disabled by "
5067
16.7k
                  "flag (SCN_DISABLE_TYPE_*)");
5068
5069
16.7k
    constexpr bool scannable = !std::is_same_v<arg_nocvref_t, unscannable>;
5070
16.7k
    static_assert(
5071
16.7k
        scannable,
5072
16.7k
        "Cannot scan an argument. To make a type T scannable, provide "
5073
16.7k
        "a scn::scanner<T, CharT> specialization.");
5074
5075
16.7k
    return arg_value{arg};
5076
16.7k
}
auto scn::v3::detail::make_value_impl<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&)
Line
Count
Source
5049
19.6M
{
5050
19.6M
    using arg_nocvref_t = remove_cvref_t<Arg>;
5051
19.6M
    static_assert(!std::is_same_v<arg_nocvref_t, needs_context_tag>);
5052
5053
19.6M
    constexpr bool scannable_char =
5054
19.6M
        !std::is_same_v<arg_nocvref_t, unscannable_char>;
5055
19.6M
    static_assert(scannable_char,
5056
19.6M
                  "Cannot scan an argument of an unsupported character "
5057
19.6M
                  "type (i.e. char from a wchar_t source)");
5058
5059
19.6M
    constexpr bool scannable_const =
5060
19.6M
        !std::is_same_v<arg_nocvref_t, unscannable_const>;
5061
19.6M
    static_assert(scannable_const, "Cannot scan a const argument");
5062
5063
19.6M
    constexpr bool scannable_disabled =
5064
19.6M
        !std::is_same_v<arg_nocvref_t, unscannable_disabled>;
5065
19.6M
    static_assert(scannable_disabled,
5066
19.6M
                  "Cannot scan an argument that has been disabled by "
5067
19.6M
                  "flag (SCN_DISABLE_TYPE_*)");
5068
5069
19.6M
    constexpr bool scannable = !std::is_same_v<arg_nocvref_t, unscannable>;
5070
19.6M
    static_assert(
5071
19.6M
        scannable,
5072
19.6M
        "Cannot scan an argument. To make a type T scannable, provide "
5073
19.6M
        "a scn::scanner<T, CharT> specialization.");
5074
5075
19.6M
    return arg_value{arg};
5076
19.6M
}
auto scn::v3::detail::make_value_impl<signed char&>(signed char&)
Line
Count
Source
5049
842k
{
5050
842k
    using arg_nocvref_t = remove_cvref_t<Arg>;
5051
842k
    static_assert(!std::is_same_v<arg_nocvref_t, needs_context_tag>);
5052
5053
842k
    constexpr bool scannable_char =
5054
842k
        !std::is_same_v<arg_nocvref_t, unscannable_char>;
5055
842k
    static_assert(scannable_char,
5056
842k
                  "Cannot scan an argument of an unsupported character "
5057
842k
                  "type (i.e. char from a wchar_t source)");
5058
5059
842k
    constexpr bool scannable_const =
5060
842k
        !std::is_same_v<arg_nocvref_t, unscannable_const>;
5061
842k
    static_assert(scannable_const, "Cannot scan a const argument");
5062
5063
842k
    constexpr bool scannable_disabled =
5064
842k
        !std::is_same_v<arg_nocvref_t, unscannable_disabled>;
5065
842k
    static_assert(scannable_disabled,
5066
842k
                  "Cannot scan an argument that has been disabled by "
5067
842k
                  "flag (SCN_DISABLE_TYPE_*)");
5068
5069
842k
    constexpr bool scannable = !std::is_same_v<arg_nocvref_t, unscannable>;
5070
842k
    static_assert(
5071
842k
        scannable,
5072
842k
        "Cannot scan an argument. To make a type T scannable, provide "
5073
842k
        "a scn::scanner<T, CharT> specialization.");
5074
5075
842k
    return arg_value{arg};
5076
842k
}
auto scn::v3::detail::make_value_impl<unsigned char&>(unsigned char&)
Line
Count
Source
5049
814k
{
5050
814k
    using arg_nocvref_t = remove_cvref_t<Arg>;
5051
814k
    static_assert(!std::is_same_v<arg_nocvref_t, needs_context_tag>);
5052
5053
814k
    constexpr bool scannable_char =
5054
814k
        !std::is_same_v<arg_nocvref_t, unscannable_char>;
5055
814k
    static_assert(scannable_char,
5056
814k
                  "Cannot scan an argument of an unsupported character "
5057
814k
                  "type (i.e. char from a wchar_t source)");
5058
5059
814k
    constexpr bool scannable_const =
5060
814k
        !std::is_same_v<arg_nocvref_t, unscannable_const>;
5061
814k
    static_assert(scannable_const, "Cannot scan a const argument");
5062
5063
814k
    constexpr bool scannable_disabled =
5064
814k
        !std::is_same_v<arg_nocvref_t, unscannable_disabled>;
5065
814k
    static_assert(scannable_disabled,
5066
814k
                  "Cannot scan an argument that has been disabled by "
5067
814k
                  "flag (SCN_DISABLE_TYPE_*)");
5068
5069
814k
    constexpr bool scannable = !std::is_same_v<arg_nocvref_t, unscannable>;
5070
814k
    static_assert(
5071
814k
        scannable,
5072
814k
        "Cannot scan an argument. To make a type T scannable, provide "
5073
814k
        "a scn::scanner<T, CharT> specialization.");
5074
5075
814k
    return arg_value{arg};
5076
814k
}
auto scn::v3::detail::make_value_impl<long long&>(long long&)
Line
Count
Source
5049
1.02M
{
5050
1.02M
    using arg_nocvref_t = remove_cvref_t<Arg>;
5051
1.02M
    static_assert(!std::is_same_v<arg_nocvref_t, needs_context_tag>);
5052
5053
1.02M
    constexpr bool scannable_char =
5054
1.02M
        !std::is_same_v<arg_nocvref_t, unscannable_char>;
5055
1.02M
    static_assert(scannable_char,
5056
1.02M
                  "Cannot scan an argument of an unsupported character "
5057
1.02M
                  "type (i.e. char from a wchar_t source)");
5058
5059
1.02M
    constexpr bool scannable_const =
5060
1.02M
        !std::is_same_v<arg_nocvref_t, unscannable_const>;
5061
1.02M
    static_assert(scannable_const, "Cannot scan a const argument");
5062
5063
1.02M
    constexpr bool scannable_disabled =
5064
1.02M
        !std::is_same_v<arg_nocvref_t, unscannable_disabled>;
5065
1.02M
    static_assert(scannable_disabled,
5066
1.02M
                  "Cannot scan an argument that has been disabled by "
5067
1.02M
                  "flag (SCN_DISABLE_TYPE_*)");
5068
5069
1.02M
    constexpr bool scannable = !std::is_same_v<arg_nocvref_t, unscannable>;
5070
1.02M
    static_assert(
5071
1.02M
        scannable,
5072
1.02M
        "Cannot scan an argument. To make a type T scannable, provide "
5073
1.02M
        "a scn::scanner<T, CharT> specialization.");
5074
5075
1.02M
    return arg_value{arg};
5076
1.02M
}
auto scn::v3::detail::make_value_impl<unsigned long long&>(unsigned long long&)
Line
Count
Source
5049
905k
{
5050
905k
    using arg_nocvref_t = remove_cvref_t<Arg>;
5051
905k
    static_assert(!std::is_same_v<arg_nocvref_t, needs_context_tag>);
5052
5053
905k
    constexpr bool scannable_char =
5054
905k
        !std::is_same_v<arg_nocvref_t, unscannable_char>;
5055
905k
    static_assert(scannable_char,
5056
905k
                  "Cannot scan an argument of an unsupported character "
5057
905k
                  "type (i.e. char from a wchar_t source)");
5058
5059
905k
    constexpr bool scannable_const =
5060
905k
        !std::is_same_v<arg_nocvref_t, unscannable_const>;
5061
905k
    static_assert(scannable_const, "Cannot scan a const argument");
5062
5063
905k
    constexpr bool scannable_disabled =
5064
905k
        !std::is_same_v<arg_nocvref_t, unscannable_disabled>;
5065
905k
    static_assert(scannable_disabled,
5066
905k
                  "Cannot scan an argument that has been disabled by "
5067
905k
                  "flag (SCN_DISABLE_TYPE_*)");
5068
5069
905k
    constexpr bool scannable = !std::is_same_v<arg_nocvref_t, unscannable>;
5070
905k
    static_assert(
5071
905k
        scannable,
5072
905k
        "Cannot scan an argument. To make a type T scannable, provide "
5073
905k
        "a scn::scanner<T, CharT> specialization.");
5074
5075
905k
    return arg_value{arg};
5076
905k
}
auto scn::v3::detail::make_value_impl<float&>(float&)
Line
Count
Source
5049
1.67M
{
5050
1.67M
    using arg_nocvref_t = remove_cvref_t<Arg>;
5051
1.67M
    static_assert(!std::is_same_v<arg_nocvref_t, needs_context_tag>);
5052
5053
1.67M
    constexpr bool scannable_char =
5054
1.67M
        !std::is_same_v<arg_nocvref_t, unscannable_char>;
5055
1.67M
    static_assert(scannable_char,
5056
1.67M
                  "Cannot scan an argument of an unsupported character "
5057
1.67M
                  "type (i.e. char from a wchar_t source)");
5058
5059
1.67M
    constexpr bool scannable_const =
5060
1.67M
        !std::is_same_v<arg_nocvref_t, unscannable_const>;
5061
1.67M
    static_assert(scannable_const, "Cannot scan a const argument");
5062
5063
1.67M
    constexpr bool scannable_disabled =
5064
1.67M
        !std::is_same_v<arg_nocvref_t, unscannable_disabled>;
5065
1.67M
    static_assert(scannable_disabled,
5066
1.67M
                  "Cannot scan an argument that has been disabled by "
5067
1.67M
                  "flag (SCN_DISABLE_TYPE_*)");
5068
5069
1.67M
    constexpr bool scannable = !std::is_same_v<arg_nocvref_t, unscannable>;
5070
1.67M
    static_assert(
5071
1.67M
        scannable,
5072
1.67M
        "Cannot scan an argument. To make a type T scannable, provide "
5073
1.67M
        "a scn::scanner<T, CharT> specialization.");
5074
5075
1.67M
    return arg_value{arg};
5076
1.67M
}
auto scn::v3::detail::make_value_impl<long double&>(long double&)
Line
Count
Source
5049
1.82M
{
5050
1.82M
    using arg_nocvref_t = remove_cvref_t<Arg>;
5051
1.82M
    static_assert(!std::is_same_v<arg_nocvref_t, needs_context_tag>);
5052
5053
1.82M
    constexpr bool scannable_char =
5054
1.82M
        !std::is_same_v<arg_nocvref_t, unscannable_char>;
5055
1.82M
    static_assert(scannable_char,
5056
1.82M
                  "Cannot scan an argument of an unsupported character "
5057
1.82M
                  "type (i.e. char from a wchar_t source)");
5058
5059
1.82M
    constexpr bool scannable_const =
5060
1.82M
        !std::is_same_v<arg_nocvref_t, unscannable_const>;
5061
1.82M
    static_assert(scannable_const, "Cannot scan a const argument");
5062
5063
1.82M
    constexpr bool scannable_disabled =
5064
1.82M
        !std::is_same_v<arg_nocvref_t, unscannable_disabled>;
5065
1.82M
    static_assert(scannable_disabled,
5066
1.82M
                  "Cannot scan an argument that has been disabled by "
5067
1.82M
                  "flag (SCN_DISABLE_TYPE_*)");
5068
5069
1.82M
    constexpr bool scannable = !std::is_same_v<arg_nocvref_t, unscannable>;
5070
1.82M
    static_assert(
5071
1.82M
        scannable,
5072
1.82M
        "Cannot scan an argument. To make a type T scannable, provide "
5073
1.82M
        "a scn::scanner<T, CharT> specialization.");
5074
5075
1.82M
    return arg_value{arg};
5076
1.82M
}
5077
5078
template <typename Context, typename T>
5079
constexpr auto make_value(T& value)
5080
70.3M
{
5081
70.3M
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5082
5083
70.3M
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5084
70.3M
                                  needs_context_tag>) {
5085
70.3M
        return make_value_impl(SCN_FWD(arg));
5086
70.3M
    }
5087
70.3M
    else {
5088
70.3M
        return make_value_impl(arg_mapper<typename Context::char_type>().map(
5089
70.3M
            value, context_tag<Context>{}));
5090
70.3M
    }
5091
70.3M
}
auto scn::v3::detail::make_value<scn::v3::basic_scan_context<char>, char>(char&)
Line
Count
Source
5080
8.37k
{
5081
8.37k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5082
5083
8.37k
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5084
8.37k
                                  needs_context_tag>) {
5085
8.37k
        return make_value_impl(SCN_FWD(arg));
5086
8.37k
    }
5087
8.37k
    else {
5088
8.37k
        return make_value_impl(arg_mapper<typename Context::char_type>().map(
5089
8.37k
            value, context_tag<Context>{}));
5090
8.37k
    }
5091
8.37k
}
auto scn::v3::detail::make_value<scn::v3::basic_scan_context<char>, int>(int&)
Line
Count
Source
5080
856k
{
5081
856k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5082
5083
856k
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5084
856k
                                  needs_context_tag>) {
5085
856k
        return make_value_impl(SCN_FWD(arg));
5086
856k
    }
5087
856k
    else {
5088
856k
        return make_value_impl(arg_mapper<typename Context::char_type>().map(
5089
856k
            value, context_tag<Context>{}));
5090
856k
    }
5091
856k
}
auto scn::v3::detail::make_value<scn::v3::basic_scan_context<char>, unsigned int>(unsigned int&)
Line
Count
Source
5080
741k
{
5081
741k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5082
5083
741k
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5084
741k
                                  needs_context_tag>) {
5085
741k
        return make_value_impl(SCN_FWD(arg));
5086
741k
    }
5087
741k
    else {
5088
741k
        return make_value_impl(arg_mapper<typename Context::char_type>().map(
5089
741k
            value, context_tag<Context>{}));
5090
741k
    }
5091
741k
}
auto scn::v3::detail::make_value<scn::v3::basic_scan_context<char>, double>(double&)
Line
Count
Source
5080
1.62M
{
5081
1.62M
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5082
5083
1.62M
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5084
1.62M
                                  needs_context_tag>) {
5085
1.62M
        return make_value_impl(SCN_FWD(arg));
5086
1.62M
    }
5087
1.62M
    else {
5088
1.62M
        return make_value_impl(arg_mapper<typename Context::char_type>().map(
5089
1.62M
            value, context_tag<Context>{}));
5090
1.62M
    }
5091
1.62M
}
auto scn::v3::detail::make_value<scn::v3::basic_scan_context<char>, bool>(bool&)
Line
Count
Source
5080
8.37k
{
5081
8.37k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5082
5083
8.37k
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5084
8.37k
                                  needs_context_tag>) {
5085
8.37k
        return make_value_impl(SCN_FWD(arg));
5086
8.37k
    }
5087
8.37k
    else {
5088
8.37k
        return make_value_impl(arg_mapper<typename Context::char_type>().map(
5089
8.37k
            value, context_tag<Context>{}));
5090
8.37k
    }
5091
8.37k
}
auto scn::v3::detail::make_value<scn::v3::basic_scan_context<char>, void*>(void*&)
Line
Count
Source
5080
8.37k
{
5081
8.37k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5082
5083
8.37k
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5084
8.37k
                                  needs_context_tag>) {
5085
8.37k
        return make_value_impl(SCN_FWD(arg));
5086
8.37k
    }
5087
8.37k
    else {
5088
8.37k
        return make_value_impl(arg_mapper<typename Context::char_type>().map(
5089
8.37k
            value, context_tag<Context>{}));
5090
8.37k
    }
5091
8.37k
}
auto scn::v3::detail::make_value<scn::v3::basic_scan_context<char>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&)
Line
Count
Source
5080
332k
{
5081
332k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5082
5083
332k
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5084
332k
                                  needs_context_tag>) {
5085
332k
        return make_value_impl(SCN_FWD(arg));
5086
332k
    }
5087
332k
    else {
5088
332k
        return make_value_impl(arg_mapper<typename Context::char_type>().map(
5089
332k
            value, context_tag<Context>{}));
5090
332k
    }
5091
332k
}
auto scn::v3::detail::make_value<scn::v3::basic_scan_context<char>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >(std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >&)
Line
Count
Source
5080
8.37k
{
5081
8.37k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5082
5083
8.37k
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5084
8.37k
                                  needs_context_tag>) {
5085
8.37k
        return make_value_impl(SCN_FWD(arg));
5086
8.37k
    }
5087
8.37k
    else {
5088
8.37k
        return make_value_impl(arg_mapper<typename Context::char_type>().map(
5089
8.37k
            value, context_tag<Context>{}));
5090
8.37k
    }
5091
8.37k
}
auto scn::v3::detail::make_value<scn::v3::basic_scan_context<char>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >(std::__1::basic_string_view<char, std::__1::char_traits<char> >&)
Line
Count
Source
5080
169k
{
5081
169k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5082
5083
169k
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5084
169k
                                  needs_context_tag>) {
5085
169k
        return make_value_impl(SCN_FWD(arg));
5086
169k
    }
5087
169k
    else {
5088
169k
        return make_value_impl(arg_mapper<typename Context::char_type>().map(
5089
169k
            value, context_tag<Context>{}));
5090
169k
    }
5091
169k
}
auto scn::v3::detail::make_value<scn::v3::basic_scan_context<wchar_t>, wchar_t>(wchar_t&)
Line
Count
Source
5080
16.7k
{
5081
16.7k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5082
5083
16.7k
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5084
16.7k
                                  needs_context_tag>) {
5085
16.7k
        return make_value_impl(SCN_FWD(arg));
5086
16.7k
    }
5087
16.7k
    else {
5088
16.7k
        return make_value_impl(arg_mapper<typename Context::char_type>().map(
5089
16.7k
            value, context_tag<Context>{}));
5090
16.7k
    }
5091
16.7k
}
auto scn::v3::detail::make_value<scn::v3::basic_scan_context<wchar_t>, int>(int&)
Line
Count
Source
5080
181k
{
5081
181k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5082
5083
181k
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5084
181k
                                  needs_context_tag>) {
5085
181k
        return make_value_impl(SCN_FWD(arg));
5086
181k
    }
5087
181k
    else {
5088
181k
        return make_value_impl(arg_mapper<typename Context::char_type>().map(
5089
181k
            value, context_tag<Context>{}));
5090
181k
    }
5091
181k
}
auto scn::v3::detail::make_value<scn::v3::basic_scan_context<wchar_t>, unsigned int>(unsigned int&)
Line
Count
Source
5080
181k
{
5081
181k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5082
5083
181k
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5084
181k
                                  needs_context_tag>) {
5085
181k
        return make_value_impl(SCN_FWD(arg));
5086
181k
    }
5087
181k
    else {
5088
181k
        return make_value_impl(arg_mapper<typename Context::char_type>().map(
5089
181k
            value, context_tag<Context>{}));
5090
181k
    }
5091
181k
}
auto scn::v3::detail::make_value<scn::v3::basic_scan_context<wchar_t>, double>(double&)
Line
Count
Source
5080
203k
{
5081
203k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5082
5083
203k
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5084
203k
                                  needs_context_tag>) {
5085
203k
        return make_value_impl(SCN_FWD(arg));
5086
203k
    }
5087
203k
    else {
5088
203k
        return make_value_impl(arg_mapper<typename Context::char_type>().map(
5089
203k
            value, context_tag<Context>{}));
5090
203k
    }
5091
203k
}
auto scn::v3::detail::make_value<scn::v3::basic_scan_context<wchar_t>, bool>(bool&)
Line
Count
Source
5080
16.7k
{
5081
16.7k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5082
5083
16.7k
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5084
16.7k
                                  needs_context_tag>) {
5085
16.7k
        return make_value_impl(SCN_FWD(arg));
5086
16.7k
    }
5087
16.7k
    else {
5088
16.7k
        return make_value_impl(arg_mapper<typename Context::char_type>().map(
5089
16.7k
            value, context_tag<Context>{}));
5090
16.7k
    }
5091
16.7k
}
auto scn::v3::detail::make_value<scn::v3::basic_scan_context<wchar_t>, void*>(void*&)
Line
Count
Source
5080
16.7k
{
5081
16.7k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5082
5083
16.7k
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5084
16.7k
                                  needs_context_tag>) {
5085
16.7k
        return make_value_impl(SCN_FWD(arg));
5086
16.7k
    }
5087
16.7k
    else {
5088
16.7k
        return make_value_impl(arg_mapper<typename Context::char_type>().map(
5089
16.7k
            value, context_tag<Context>{}));
5090
16.7k
    }
5091
16.7k
}
auto scn::v3::detail::make_value<scn::v3::basic_scan_context<wchar_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&)
Line
Count
Source
5080
16.7k
{
5081
16.7k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5082
5083
16.7k
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5084
16.7k
                                  needs_context_tag>) {
5085
16.7k
        return make_value_impl(SCN_FWD(arg));
5086
16.7k
    }
5087
16.7k
    else {
5088
16.7k
        return make_value_impl(arg_mapper<typename Context::char_type>().map(
5089
16.7k
            value, context_tag<Context>{}));
5090
16.7k
    }
5091
16.7k
}
auto scn::v3::detail::make_value<scn::v3::basic_scan_context<wchar_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >(std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >&)
Line
Count
Source
5080
39.2M
{
5081
39.2M
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5082
5083
39.2M
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5084
39.2M
                                  needs_context_tag>) {
5085
39.2M
        return make_value_impl(SCN_FWD(arg));
5086
39.2M
    }
5087
39.2M
    else {
5088
39.2M
        return make_value_impl(arg_mapper<typename Context::char_type>().map(
5089
39.2M
            value, context_tag<Context>{}));
5090
39.2M
    }
5091
39.2M
}
auto scn::v3::detail::make_value<scn::v3::basic_scan_context<wchar_t>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&)
Line
Count
Source
5080
19.6M
{
5081
19.6M
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5082
5083
19.6M
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5084
19.6M
                                  needs_context_tag>) {
5085
19.6M
        return make_value_impl(SCN_FWD(arg));
5086
19.6M
    }
5087
19.6M
    else {
5088
19.6M
        return make_value_impl(arg_mapper<typename Context::char_type>().map(
5089
19.6M
            value, context_tag<Context>{}));
5090
19.6M
    }
5091
19.6M
}
auto scn::v3::detail::make_value<scn::v3::basic_scan_context<char>, signed char>(signed char&)
Line
Count
Source
5080
677k
{
5081
677k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5082
5083
677k
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5084
677k
                                  needs_context_tag>) {
5085
677k
        return make_value_impl(SCN_FWD(arg));
5086
677k
    }
5087
677k
    else {
5088
677k
        return make_value_impl(arg_mapper<typename Context::char_type>().map(
5089
677k
            value, context_tag<Context>{}));
5090
677k
    }
5091
677k
}
auto scn::v3::detail::make_value<scn::v3::basic_scan_context<char>, unsigned char>(unsigned char&)
Line
Count
Source
5080
650k
{
5081
650k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5082
5083
650k
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5084
650k
                                  needs_context_tag>) {
5085
650k
        return make_value_impl(SCN_FWD(arg));
5086
650k
    }
5087
650k
    else {
5088
650k
        return make_value_impl(arg_mapper<typename Context::char_type>().map(
5089
650k
            value, context_tag<Context>{}));
5090
650k
    }
5091
650k
}
auto scn::v3::detail::make_value<scn::v3::basic_scan_context<char>, long long>(long long&)
Line
Count
Source
5080
863k
{
5081
863k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5082
5083
863k
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5084
863k
                                  needs_context_tag>) {
5085
863k
        return make_value_impl(SCN_FWD(arg));
5086
863k
    }
5087
863k
    else {
5088
863k
        return make_value_impl(arg_mapper<typename Context::char_type>().map(
5089
863k
            value, context_tag<Context>{}));
5090
863k
    }
5091
863k
}
auto scn::v3::detail::make_value<scn::v3::basic_scan_context<char>, unsigned long long>(unsigned long long&)
Line
Count
Source
5080
741k
{
5081
741k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5082
5083
741k
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5084
741k
                                  needs_context_tag>) {
5085
741k
        return make_value_impl(SCN_FWD(arg));
5086
741k
    }
5087
741k
    else {
5088
741k
        return make_value_impl(arg_mapper<typename Context::char_type>().map(
5089
741k
            value, context_tag<Context>{}));
5090
741k
    }
5091
741k
}
auto scn::v3::detail::make_value<scn::v3::basic_scan_context<wchar_t>, signed char>(signed char&)
Line
Count
Source
5080
164k
{
5081
164k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5082
5083
164k
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5084
164k
                                  needs_context_tag>) {
5085
164k
        return make_value_impl(SCN_FWD(arg));
5086
164k
    }
5087
164k
    else {
5088
164k
        return make_value_impl(arg_mapper<typename Context::char_type>().map(
5089
164k
            value, context_tag<Context>{}));
5090
164k
    }
5091
164k
}
auto scn::v3::detail::make_value<scn::v3::basic_scan_context<wchar_t>, unsigned char>(unsigned char&)
Line
Count
Source
5080
164k
{
5081
164k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5082
5083
164k
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5084
164k
                                  needs_context_tag>) {
5085
164k
        return make_value_impl(SCN_FWD(arg));
5086
164k
    }
5087
164k
    else {
5088
164k
        return make_value_impl(arg_mapper<typename Context::char_type>().map(
5089
164k
            value, context_tag<Context>{}));
5090
164k
    }
5091
164k
}
auto scn::v3::detail::make_value<scn::v3::basic_scan_context<wchar_t>, long long>(long long&)
Line
Count
Source
5080
165k
{
5081
165k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5082
5083
165k
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5084
165k
                                  needs_context_tag>) {
5085
165k
        return make_value_impl(SCN_FWD(arg));
5086
165k
    }
5087
165k
    else {
5088
165k
        return make_value_impl(arg_mapper<typename Context::char_type>().map(
5089
165k
            value, context_tag<Context>{}));
5090
165k
    }
5091
165k
}
auto scn::v3::detail::make_value<scn::v3::basic_scan_context<wchar_t>, unsigned long long>(unsigned long long&)
Line
Count
Source
5080
164k
{
5081
164k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5082
5083
164k
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5084
164k
                                  needs_context_tag>) {
5085
164k
        return make_value_impl(SCN_FWD(arg));
5086
164k
    }
5087
164k
    else {
5088
164k
        return make_value_impl(arg_mapper<typename Context::char_type>().map(
5089
164k
            value, context_tag<Context>{}));
5090
164k
    }
5091
164k
}
auto scn::v3::detail::make_value<scn::v3::basic_scan_context<char>, float>(float&)
Line
Count
Source
5080
1.49M
{
5081
1.49M
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5082
5083
1.49M
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5084
1.49M
                                  needs_context_tag>) {
5085
1.49M
        return make_value_impl(SCN_FWD(arg));
5086
1.49M
    }
5087
1.49M
    else {
5088
1.49M
        return make_value_impl(arg_mapper<typename Context::char_type>().map(
5089
1.49M
            value, context_tag<Context>{}));
5090
1.49M
    }
5091
1.49M
}
auto scn::v3::detail::make_value<scn::v3::basic_scan_context<char>, long double>(long double&)
Line
Count
Source
5080
1.63M
{
5081
1.63M
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5082
5083
1.63M
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5084
1.63M
                                  needs_context_tag>) {
5085
1.63M
        return make_value_impl(SCN_FWD(arg));
5086
1.63M
    }
5087
1.63M
    else {
5088
1.63M
        return make_value_impl(arg_mapper<typename Context::char_type>().map(
5089
1.63M
            value, context_tag<Context>{}));
5090
1.63M
    }
5091
1.63M
}
auto scn::v3::detail::make_value<scn::v3::basic_scan_context<wchar_t>, float>(float&)
Line
Count
Source
5080
186k
{
5081
186k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5082
5083
186k
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5084
186k
                                  needs_context_tag>) {
5085
186k
        return make_value_impl(SCN_FWD(arg));
5086
186k
    }
5087
186k
    else {
5088
186k
        return make_value_impl(arg_mapper<typename Context::char_type>().map(
5089
186k
            value, context_tag<Context>{}));
5090
186k
    }
5091
186k
}
auto scn::v3::detail::make_value<scn::v3::basic_scan_context<wchar_t>, long double>(long double&)
Line
Count
Source
5080
186k
{
5081
186k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5082
5083
186k
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5084
186k
                                  needs_context_tag>) {
5085
186k
        return make_value_impl(SCN_FWD(arg));
5086
186k
    }
5087
186k
    else {
5088
186k
        return make_value_impl(arg_mapper<typename Context::char_type>().map(
5089
186k
            value, context_tag<Context>{}));
5090
186k
    }
5091
186k
}
5092
5093
template <typename... Args>
5094
constexpr void check_scan_arg_types()
5095
70.3M
{
5096
70.3M
    static_assert(std::conjunction_v<std::is_default_constructible<Args>...>,
5097
70.3M
                  "Scan argument types must be default constructible");
5098
70.3M
    static_assert(std::conjunction_v<std::is_destructible<Args>...>,
5099
70.3M
                  "Scan argument types must be Destructible");
5100
70.3M
    static_assert(
5101
70.3M
        !std::conjunction_v<std::false_type, std::is_reference<Args>...>,
5102
70.3M
        "Scan argument types must not be references");
5103
70.3M
}
void scn::v3::detail::check_scan_arg_types<char>()
Line
Count
Source
5095
8.37k
{
5096
8.37k
    static_assert(std::conjunction_v<std::is_default_constructible<Args>...>,
5097
8.37k
                  "Scan argument types must be default constructible");
5098
8.37k
    static_assert(std::conjunction_v<std::is_destructible<Args>...>,
5099
8.37k
                  "Scan argument types must be Destructible");
5100
8.37k
    static_assert(
5101
8.37k
        !std::conjunction_v<std::false_type, std::is_reference<Args>...>,
5102
8.37k
        "Scan argument types must not be references");
5103
8.37k
}
void scn::v3::detail::check_scan_arg_types<int>()
Line
Count
Source
5095
1.03M
{
5096
1.03M
    static_assert(std::conjunction_v<std::is_default_constructible<Args>...>,
5097
1.03M
                  "Scan argument types must be default constructible");
5098
1.03M
    static_assert(std::conjunction_v<std::is_destructible<Args>...>,
5099
1.03M
                  "Scan argument types must be Destructible");
5100
1.03M
    static_assert(
5101
1.03M
        !std::conjunction_v<std::false_type, std::is_reference<Args>...>,
5102
1.03M
        "Scan argument types must not be references");
5103
1.03M
}
void scn::v3::detail::check_scan_arg_types<unsigned int>()
Line
Count
Source
5095
922k
{
5096
922k
    static_assert(std::conjunction_v<std::is_default_constructible<Args>...>,
5097
922k
                  "Scan argument types must be default constructible");
5098
922k
    static_assert(std::conjunction_v<std::is_destructible<Args>...>,
5099
922k
                  "Scan argument types must be Destructible");
5100
922k
    static_assert(
5101
922k
        !std::conjunction_v<std::false_type, std::is_reference<Args>...>,
5102
922k
        "Scan argument types must not be references");
5103
922k
}
void scn::v3::detail::check_scan_arg_types<double>()
Line
Count
Source
5095
1.82M
{
5096
1.82M
    static_assert(std::conjunction_v<std::is_default_constructible<Args>...>,
5097
1.82M
                  "Scan argument types must be default constructible");
5098
1.82M
    static_assert(std::conjunction_v<std::is_destructible<Args>...>,
5099
1.82M
                  "Scan argument types must be Destructible");
5100
1.82M
    static_assert(
5101
1.82M
        !std::conjunction_v<std::false_type, std::is_reference<Args>...>,
5102
1.82M
        "Scan argument types must not be references");
5103
1.82M
}
void scn::v3::detail::check_scan_arg_types<bool>()
Line
Count
Source
5095
25.1k
{
5096
25.1k
    static_assert(std::conjunction_v<std::is_default_constructible<Args>...>,
5097
25.1k
                  "Scan argument types must be default constructible");
5098
25.1k
    static_assert(std::conjunction_v<std::is_destructible<Args>...>,
5099
25.1k
                  "Scan argument types must be Destructible");
5100
25.1k
    static_assert(
5101
25.1k
        !std::conjunction_v<std::false_type, std::is_reference<Args>...>,
5102
25.1k
        "Scan argument types must not be references");
5103
25.1k
}
void scn::v3::detail::check_scan_arg_types<void*>()
Line
Count
Source
5095
25.1k
{
5096
25.1k
    static_assert(std::conjunction_v<std::is_default_constructible<Args>...>,
5097
25.1k
                  "Scan argument types must be default constructible");
5098
25.1k
    static_assert(std::conjunction_v<std::is_destructible<Args>...>,
5099
25.1k
                  "Scan argument types must be Destructible");
5100
25.1k
    static_assert(
5101
25.1k
        !std::conjunction_v<std::false_type, std::is_reference<Args>...>,
5102
25.1k
        "Scan argument types must not be references");
5103
25.1k
}
void scn::v3::detail::check_scan_arg_types<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >()
Line
Count
Source
5095
348k
{
5096
348k
    static_assert(std::conjunction_v<std::is_default_constructible<Args>...>,
5097
348k
                  "Scan argument types must be default constructible");
5098
348k
    static_assert(std::conjunction_v<std::is_destructible<Args>...>,
5099
348k
                  "Scan argument types must be Destructible");
5100
348k
    static_assert(
5101
348k
        !std::conjunction_v<std::false_type, std::is_reference<Args>...>,
5102
348k
        "Scan argument types must not be references");
5103
348k
}
void scn::v3::detail::check_scan_arg_types<std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >()
Line
Count
Source
5095
39.2M
{
5096
39.2M
    static_assert(std::conjunction_v<std::is_default_constructible<Args>...>,
5097
39.2M
                  "Scan argument types must be default constructible");
5098
39.2M
    static_assert(std::conjunction_v<std::is_destructible<Args>...>,
5099
39.2M
                  "Scan argument types must be Destructible");
5100
39.2M
    static_assert(
5101
39.2M
        !std::conjunction_v<std::false_type, std::is_reference<Args>...>,
5102
39.2M
        "Scan argument types must not be references");
5103
39.2M
}
void scn::v3::detail::check_scan_arg_types<std::__1::basic_string_view<char, std::__1::char_traits<char> > >()
Line
Count
Source
5095
169k
{
5096
169k
    static_assert(std::conjunction_v<std::is_default_constructible<Args>...>,
5097
169k
                  "Scan argument types must be default constructible");
5098
169k
    static_assert(std::conjunction_v<std::is_destructible<Args>...>,
5099
169k
                  "Scan argument types must be Destructible");
5100
169k
    static_assert(
5101
169k
        !std::conjunction_v<std::false_type, std::is_reference<Args>...>,
5102
169k
        "Scan argument types must not be references");
5103
169k
}
void scn::v3::detail::check_scan_arg_types<wchar_t>()
Line
Count
Source
5095
16.7k
{
5096
16.7k
    static_assert(std::conjunction_v<std::is_default_constructible<Args>...>,
5097
16.7k
                  "Scan argument types must be default constructible");
5098
16.7k
    static_assert(std::conjunction_v<std::is_destructible<Args>...>,
5099
16.7k
                  "Scan argument types must be Destructible");
5100
16.7k
    static_assert(
5101
16.7k
        !std::conjunction_v<std::false_type, std::is_reference<Args>...>,
5102
16.7k
        "Scan argument types must not be references");
5103
16.7k
}
void scn::v3::detail::check_scan_arg_types<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >()
Line
Count
Source
5095
19.6M
{
5096
19.6M
    static_assert(std::conjunction_v<std::is_default_constructible<Args>...>,
5097
19.6M
                  "Scan argument types must be default constructible");
5098
19.6M
    static_assert(std::conjunction_v<std::is_destructible<Args>...>,
5099
19.6M
                  "Scan argument types must be Destructible");
5100
19.6M
    static_assert(
5101
19.6M
        !std::conjunction_v<std::false_type, std::is_reference<Args>...>,
5102
19.6M
        "Scan argument types must not be references");
5103
19.6M
}
void scn::v3::detail::check_scan_arg_types<signed char>()
Line
Count
Source
5095
842k
{
5096
842k
    static_assert(std::conjunction_v<std::is_default_constructible<Args>...>,
5097
842k
                  "Scan argument types must be default constructible");
5098
842k
    static_assert(std::conjunction_v<std::is_destructible<Args>...>,
5099
842k
                  "Scan argument types must be Destructible");
5100
842k
    static_assert(
5101
842k
        !std::conjunction_v<std::false_type, std::is_reference<Args>...>,
5102
842k
        "Scan argument types must not be references");
5103
842k
}
void scn::v3::detail::check_scan_arg_types<unsigned char>()
Line
Count
Source
5095
814k
{
5096
814k
    static_assert(std::conjunction_v<std::is_default_constructible<Args>...>,
5097
814k
                  "Scan argument types must be default constructible");
5098
814k
    static_assert(std::conjunction_v<std::is_destructible<Args>...>,
5099
814k
                  "Scan argument types must be Destructible");
5100
814k
    static_assert(
5101
814k
        !std::conjunction_v<std::false_type, std::is_reference<Args>...>,
5102
814k
        "Scan argument types must not be references");
5103
814k
}
void scn::v3::detail::check_scan_arg_types<long long>()
Line
Count
Source
5095
1.02M
{
5096
1.02M
    static_assert(std::conjunction_v<std::is_default_constructible<Args>...>,
5097
1.02M
                  "Scan argument types must be default constructible");
5098
1.02M
    static_assert(std::conjunction_v<std::is_destructible<Args>...>,
5099
1.02M
                  "Scan argument types must be Destructible");
5100
1.02M
    static_assert(
5101
1.02M
        !std::conjunction_v<std::false_type, std::is_reference<Args>...>,
5102
1.02M
        "Scan argument types must not be references");
5103
1.02M
}
void scn::v3::detail::check_scan_arg_types<unsigned long long>()
Line
Count
Source
5095
905k
{
5096
905k
    static_assert(std::conjunction_v<std::is_default_constructible<Args>...>,
5097
905k
                  "Scan argument types must be default constructible");
5098
905k
    static_assert(std::conjunction_v<std::is_destructible<Args>...>,
5099
905k
                  "Scan argument types must be Destructible");
5100
905k
    static_assert(
5101
905k
        !std::conjunction_v<std::false_type, std::is_reference<Args>...>,
5102
905k
        "Scan argument types must not be references");
5103
905k
}
void scn::v3::detail::check_scan_arg_types<float>()
Line
Count
Source
5095
1.67M
{
5096
1.67M
    static_assert(std::conjunction_v<std::is_default_constructible<Args>...>,
5097
1.67M
                  "Scan argument types must be default constructible");
5098
1.67M
    static_assert(std::conjunction_v<std::is_destructible<Args>...>,
5099
1.67M
                  "Scan argument types must be Destructible");
5100
1.67M
    static_assert(
5101
1.67M
        !std::conjunction_v<std::false_type, std::is_reference<Args>...>,
5102
1.67M
        "Scan argument types must not be references");
5103
1.67M
}
void scn::v3::detail::check_scan_arg_types<long double>()
Line
Count
Source
5095
1.82M
{
5096
1.82M
    static_assert(std::conjunction_v<std::is_default_constructible<Args>...>,
5097
1.82M
                  "Scan argument types must be default constructible");
5098
1.82M
    static_assert(std::conjunction_v<std::is_destructible<Args>...>,
5099
1.82M
                  "Scan argument types must be Destructible");
5100
1.82M
    static_assert(
5101
1.82M
        !std::conjunction_v<std::false_type, std::is_reference<Args>...>,
5102
1.82M
        "Scan argument types must not be references");
5103
1.82M
}
5104
5105
enum class scan_arg_store_kind {
5106
    // only built-in types (no custom types), packed
5107
    builtin,
5108
5109
    packed,
5110
    unpacked
5111
};
5112
5113
template <typename Context, typename T>
5114
constexpr basic_scan_arg<Context> make_arg(T& value)
5115
12.7M
{
5116
12.7M
    check_scan_arg_types<T>();
5117
5118
12.7M
    basic_scan_arg<Context> arg;
5119
12.7M
    arg.m_type = mapped_type_constant<T, typename Context::char_type>::value;
5120
12.7M
    arg.m_value = make_value<Context>(value);
5121
12.7M
    return arg;
5122
12.7M
}
scn::v3::basic_scan_arg<scn::v3::basic_scan_context<char> > scn::v3::detail::make_arg<scn::v3::basic_scan_context<char>, signed char>(signed char&)
Line
Count
Source
5115
52.5k
{
5116
52.5k
    check_scan_arg_types<T>();
5117
5118
52.5k
    basic_scan_arg<Context> arg;
5119
52.5k
    arg.m_type = mapped_type_constant<T, typename Context::char_type>::value;
5120
52.5k
    arg.m_value = make_value<Context>(value);
5121
52.5k
    return arg;
5122
52.5k
}
scn::v3::basic_scan_arg<scn::v3::basic_scan_context<char> > scn::v3::detail::make_arg<scn::v3::basic_scan_context<char>, unsigned char>(unsigned char&)
Line
Count
Source
5115
46.6k
{
5116
46.6k
    check_scan_arg_types<T>();
5117
5118
46.6k
    basic_scan_arg<Context> arg;
5119
46.6k
    arg.m_type = mapped_type_constant<T, typename Context::char_type>::value;
5120
46.6k
    arg.m_value = make_value<Context>(value);
5121
46.6k
    return arg;
5122
46.6k
}
scn::v3::basic_scan_arg<scn::v3::basic_scan_context<char> > scn::v3::detail::make_arg<scn::v3::basic_scan_context<char>, int>(int&)
Line
Count
Source
5115
60.2k
{
5116
60.2k
    check_scan_arg_types<T>();
5117
5118
60.2k
    basic_scan_arg<Context> arg;
5119
60.2k
    arg.m_type = mapped_type_constant<T, typename Context::char_type>::value;
5120
60.2k
    arg.m_value = make_value<Context>(value);
5121
60.2k
    return arg;
5122
60.2k
}
scn::v3::basic_scan_arg<scn::v3::basic_scan_context<char> > scn::v3::detail::make_arg<scn::v3::basic_scan_context<char>, unsigned int>(unsigned int&)
Line
Count
Source
5115
51.9k
{
5116
51.9k
    check_scan_arg_types<T>();
5117
5118
51.9k
    basic_scan_arg<Context> arg;
5119
51.9k
    arg.m_type = mapped_type_constant<T, typename Context::char_type>::value;
5120
51.9k
    arg.m_value = make_value<Context>(value);
5121
51.9k
    return arg;
5122
51.9k
}
scn::v3::basic_scan_arg<scn::v3::basic_scan_context<char> > scn::v3::detail::make_arg<scn::v3::basic_scan_context<char>, long long>(long long&)
Line
Count
Source
5115
61.3k
{
5116
61.3k
    check_scan_arg_types<T>();
5117
5118
61.3k
    basic_scan_arg<Context> arg;
5119
61.3k
    arg.m_type = mapped_type_constant<T, typename Context::char_type>::value;
5120
61.3k
    arg.m_value = make_value<Context>(value);
5121
61.3k
    return arg;
5122
61.3k
}
scn::v3::basic_scan_arg<scn::v3::basic_scan_context<char> > scn::v3::detail::make_arg<scn::v3::basic_scan_context<char>, unsigned long long>(unsigned long long&)
Line
Count
Source
5115
52.6k
{
5116
52.6k
    check_scan_arg_types<T>();
5117
5118
52.6k
    basic_scan_arg<Context> arg;
5119
52.6k
    arg.m_type = mapped_type_constant<T, typename Context::char_type>::value;
5120
52.6k
    arg.m_value = make_value<Context>(value);
5121
52.6k
    return arg;
5122
52.6k
}
scn::v3::basic_scan_arg<scn::v3::basic_scan_context<wchar_t> > scn::v3::detail::make_arg<scn::v3::basic_scan_context<wchar_t>, signed char>(signed char&)
Line
Count
Source
5115
7.87k
{
5116
7.87k
    check_scan_arg_types<T>();
5117
5118
7.87k
    basic_scan_arg<Context> arg;
5119
7.87k
    arg.m_type = mapped_type_constant<T, typename Context::char_type>::value;
5120
7.87k
    arg.m_value = make_value<Context>(value);
5121
7.87k
    return arg;
5122
7.87k
}
scn::v3::basic_scan_arg<scn::v3::basic_scan_context<wchar_t> > scn::v3::detail::make_arg<scn::v3::basic_scan_context<wchar_t>, unsigned char>(unsigned char&)
Line
Count
Source
5115
7.85k
{
5116
7.85k
    check_scan_arg_types<T>();
5117
5118
7.85k
    basic_scan_arg<Context> arg;
5119
7.85k
    arg.m_type = mapped_type_constant<T, typename Context::char_type>::value;
5120
7.85k
    arg.m_value = make_value<Context>(value);
5121
7.85k
    return arg;
5122
7.85k
}
scn::v3::basic_scan_arg<scn::v3::basic_scan_context<wchar_t> > scn::v3::detail::make_arg<scn::v3::basic_scan_context<wchar_t>, int>(int&)
Line
Count
Source
5115
7.89k
{
5116
7.89k
    check_scan_arg_types<T>();
5117
5118
7.89k
    basic_scan_arg<Context> arg;
5119
7.89k
    arg.m_type = mapped_type_constant<T, typename Context::char_type>::value;
5120
7.89k
    arg.m_value = make_value<Context>(value);
5121
7.89k
    return arg;
5122
7.89k
}
scn::v3::basic_scan_arg<scn::v3::basic_scan_context<wchar_t> > scn::v3::detail::make_arg<scn::v3::basic_scan_context<wchar_t>, unsigned int>(unsigned int&)
Line
Count
Source
5115
7.86k
{
5116
7.86k
    check_scan_arg_types<T>();
5117
5118
7.86k
    basic_scan_arg<Context> arg;
5119
7.86k
    arg.m_type = mapped_type_constant<T, typename Context::char_type>::value;
5120
7.86k
    arg.m_value = make_value<Context>(value);
5121
7.86k
    return arg;
5122
7.86k
}
scn::v3::basic_scan_arg<scn::v3::basic_scan_context<wchar_t> > scn::v3::detail::make_arg<scn::v3::basic_scan_context<wchar_t>, long long>(long long&)
Line
Count
Source
5115
7.92k
{
5116
7.92k
    check_scan_arg_types<T>();
5117
5118
7.92k
    basic_scan_arg<Context> arg;
5119
7.92k
    arg.m_type = mapped_type_constant<T, typename Context::char_type>::value;
5120
7.92k
    arg.m_value = make_value<Context>(value);
5121
7.92k
    return arg;
5122
7.92k
}
scn::v3::basic_scan_arg<scn::v3::basic_scan_context<wchar_t> > scn::v3::detail::make_arg<scn::v3::basic_scan_context<wchar_t>, unsigned long long>(unsigned long long&)
Line
Count
Source
5115
7.89k
{
5116
7.89k
    check_scan_arg_types<T>();
5117
5118
7.89k
    basic_scan_arg<Context> arg;
5119
7.89k
    arg.m_type = mapped_type_constant<T, typename Context::char_type>::value;
5120
7.89k
    arg.m_value = make_value<Context>(value);
5121
7.89k
    return arg;
5122
7.89k
}
scn::v3::basic_scan_arg<scn::v3::basic_scan_context<char> > scn::v3::detail::make_arg<scn::v3::basic_scan_context<char>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&)
Line
Count
Source
5115
62.0k
{
5116
62.0k
    check_scan_arg_types<T>();
5117
5118
62.0k
    basic_scan_arg<Context> arg;
5119
62.0k
    arg.m_type = mapped_type_constant<T, typename Context::char_type>::value;
5120
62.0k
    arg.m_value = make_value<Context>(value);
5121
62.0k
    return arg;
5122
62.0k
}
scn::v3::basic_scan_arg<scn::v3::basic_scan_context<char> > scn::v3::detail::make_arg<scn::v3::basic_scan_context<char>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >(std::__1::basic_string_view<char, std::__1::char_traits<char> >&)
Line
Count
Source
5115
30.8k
{
5116
30.8k
    check_scan_arg_types<T>();
5117
5118
30.8k
    basic_scan_arg<Context> arg;
5119
30.8k
    arg.m_type = mapped_type_constant<T, typename Context::char_type>::value;
5120
30.8k
    arg.m_value = make_value<Context>(value);
5121
30.8k
    return arg;
5122
30.8k
}
scn::v3::basic_scan_arg<scn::v3::basic_scan_context<wchar_t> > scn::v3::detail::make_arg<scn::v3::basic_scan_context<wchar_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >(std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >&)
Line
Count
Source
5115
7.84M
{
5116
7.84M
    check_scan_arg_types<T>();
5117
5118
7.84M
    basic_scan_arg<Context> arg;
5119
7.84M
    arg.m_type = mapped_type_constant<T, typename Context::char_type>::value;
5120
7.84M
    arg.m_value = make_value<Context>(value);
5121
7.84M
    return arg;
5122
7.84M
}
scn::v3::basic_scan_arg<scn::v3::basic_scan_context<wchar_t> > scn::v3::detail::make_arg<scn::v3::basic_scan_context<wchar_t>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&)
Line
Count
Source
5115
3.92M
{
5116
3.92M
    check_scan_arg_types<T>();
5117
5118
3.92M
    basic_scan_arg<Context> arg;
5119
3.92M
    arg.m_type = mapped_type_constant<T, typename Context::char_type>::value;
5120
3.92M
    arg.m_value = make_value<Context>(value);
5121
3.92M
    return arg;
5122
3.92M
}
scn::v3::basic_scan_arg<scn::v3::basic_scan_context<char> > scn::v3::detail::make_arg<scn::v3::basic_scan_context<char>, float>(float&)
Line
Count
Source
5115
142k
{
5116
142k
    check_scan_arg_types<T>();
5117
5118
142k
    basic_scan_arg<Context> arg;
5119
142k
    arg.m_type = mapped_type_constant<T, typename Context::char_type>::value;
5120
142k
    arg.m_value = make_value<Context>(value);
5121
142k
    return arg;
5122
142k
}
scn::v3::basic_scan_arg<scn::v3::basic_scan_context<char> > scn::v3::detail::make_arg<scn::v3::basic_scan_context<char>, double>(double&)
Line
Count
Source
5115
158k
{
5116
158k
    check_scan_arg_types<T>();
5117
5118
158k
    basic_scan_arg<Context> arg;
5119
158k
    arg.m_type = mapped_type_constant<T, typename Context::char_type>::value;
5120
158k
    arg.m_value = make_value<Context>(value);
5121
158k
    return arg;
5122
158k
}
scn::v3::basic_scan_arg<scn::v3::basic_scan_context<char> > scn::v3::detail::make_arg<scn::v3::basic_scan_context<char>, long double>(long double&)
Line
Count
Source
5115
160k
{
5116
160k
    check_scan_arg_types<T>();
5117
5118
160k
    basic_scan_arg<Context> arg;
5119
160k
    arg.m_type = mapped_type_constant<T, typename Context::char_type>::value;
5120
160k
    arg.m_value = make_value<Context>(value);
5121
160k
    return arg;
5122
160k
}
scn::v3::basic_scan_arg<scn::v3::basic_scan_context<wchar_t> > scn::v3::detail::make_arg<scn::v3::basic_scan_context<wchar_t>, float>(float&)
Line
Count
Source
5115
14.7k
{
5116
14.7k
    check_scan_arg_types<T>();
5117
5118
14.7k
    basic_scan_arg<Context> arg;
5119
14.7k
    arg.m_type = mapped_type_constant<T, typename Context::char_type>::value;
5120
14.7k
    arg.m_value = make_value<Context>(value);
5121
14.7k
    return arg;
5122
14.7k
}
scn::v3::basic_scan_arg<scn::v3::basic_scan_context<wchar_t> > scn::v3::detail::make_arg<scn::v3::basic_scan_context<wchar_t>, double>(double&)
Line
Count
Source
5115
14.7k
{
5116
14.7k
    check_scan_arg_types<T>();
5117
5118
14.7k
    basic_scan_arg<Context> arg;
5119
14.7k
    arg.m_type = mapped_type_constant<T, typename Context::char_type>::value;
5120
14.7k
    arg.m_value = make_value<Context>(value);
5121
14.7k
    return arg;
5122
14.7k
}
scn::v3::basic_scan_arg<scn::v3::basic_scan_context<wchar_t> > scn::v3::detail::make_arg<scn::v3::basic_scan_context<wchar_t>, long double>(long double&)
Line
Count
Source
5115
14.7k
{
5116
14.7k
    check_scan_arg_types<T>();
5117
5118
14.7k
    basic_scan_arg<Context> arg;
5119
14.7k
    arg.m_type = mapped_type_constant<T, typename Context::char_type>::value;
5120
14.7k
    arg.m_value = make_value<Context>(value);
5121
14.7k
    return arg;
5122
14.7k
}
5123
5124
template <scan_arg_store_kind Kind,
5125
          typename Context,
5126
          arg_type,
5127
          typename T,
5128
          typename = std::enable_if_t<Kind == scan_arg_store_kind::builtin>>
5129
constexpr void* make_arg(T& value)
5130
57.6M
{
5131
57.6M
    return make_value<Context>(value).ref_value;
5132
57.6M
}
void* scn::v3::detail::make_arg<(scn::v3::detail::scan_arg_store_kind)0, scn::v3::basic_scan_context<char>, (scn::v3::detail::arg_type)12, char, void>(char&)
Line
Count
Source
5130
8.37k
{
5131
8.37k
    return make_value<Context>(value).ref_value;
5132
8.37k
}
void* scn::v3::detail::make_arg<(scn::v3::detail::scan_arg_store_kind)0, scn::v3::basic_scan_context<char>, (scn::v3::detail::arg_type)3, int, void>(int&)
Line
Count
Source
5130
795k
{
5131
795k
    return make_value<Context>(value).ref_value;
5132
795k
}
void* scn::v3::detail::make_arg<(scn::v3::detail::scan_arg_store_kind)0, scn::v3::basic_scan_context<char>, (scn::v3::detail::arg_type)8, unsigned int, void>(unsigned int&)
Line
Count
Source
5130
689k
{
5131
689k
    return make_value<Context>(value).ref_value;
5132
689k
}
void* scn::v3::detail::make_arg<(scn::v3::detail::scan_arg_store_kind)0, scn::v3::basic_scan_context<char>, (scn::v3::detail::arg_type)17, double, void>(double&)
Line
Count
Source
5130
1.46M
{
5131
1.46M
    return make_value<Context>(value).ref_value;
5132
1.46M
}
void* scn::v3::detail::make_arg<(scn::v3::detail::scan_arg_store_kind)0, scn::v3::basic_scan_context<char>, (scn::v3::detail::arg_type)11, bool, void>(bool&)
Line
Count
Source
5130
8.37k
{
5131
8.37k
    return make_value<Context>(value).ref_value;
5132
8.37k
}
void* scn::v3::detail::make_arg<(scn::v3::detail::scan_arg_store_kind)0, scn::v3::basic_scan_context<char>, (scn::v3::detail::arg_type)15, void*, void>(void*&)
Line
Count
Source
5130
8.37k
{
5131
8.37k
    return make_value<Context>(value).ref_value;
5132
8.37k
}
void* scn::v3::detail::make_arg<(scn::v3::detail::scan_arg_store_kind)0, scn::v3::basic_scan_context<char>, (scn::v3::detail::arg_type)21, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, void>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&)
Line
Count
Source
5130
270k
{
5131
270k
    return make_value<Context>(value).ref_value;
5132
270k
}
void* scn::v3::detail::make_arg<(scn::v3::detail::scan_arg_store_kind)0, scn::v3::basic_scan_context<char>, (scn::v3::detail::arg_type)22, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, void>(std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >&)
Line
Count
Source
5130
8.37k
{
5131
8.37k
    return make_value<Context>(value).ref_value;
5132
8.37k
}
void* scn::v3::detail::make_arg<(scn::v3::detail::scan_arg_store_kind)0, scn::v3::basic_scan_context<char>, (scn::v3::detail::arg_type)19, std::__1::basic_string_view<char, std::__1::char_traits<char> >, void>(std::__1::basic_string_view<char, std::__1::char_traits<char> >&)
Line
Count
Source
5130
138k
{
5131
138k
    return make_value<Context>(value).ref_value;
5132
138k
}
void* scn::v3::detail::make_arg<(scn::v3::detail::scan_arg_store_kind)0, scn::v3::basic_scan_context<wchar_t>, (scn::v3::detail::arg_type)13, wchar_t, void>(wchar_t&)
Line
Count
Source
5130
16.7k
{
5131
16.7k
    return make_value<Context>(value).ref_value;
5132
16.7k
}
void* scn::v3::detail::make_arg<(scn::v3::detail::scan_arg_store_kind)0, scn::v3::basic_scan_context<wchar_t>, (scn::v3::detail::arg_type)3, int, void>(int&)
Line
Count
Source
5130
173k
{
5131
173k
    return make_value<Context>(value).ref_value;
5132
173k
}
void* scn::v3::detail::make_arg<(scn::v3::detail::scan_arg_store_kind)0, scn::v3::basic_scan_context<wchar_t>, (scn::v3::detail::arg_type)8, unsigned int, void>(unsigned int&)
Line
Count
Source
5130
173k
{
5131
173k
    return make_value<Context>(value).ref_value;
5132
173k
}
void* scn::v3::detail::make_arg<(scn::v3::detail::scan_arg_store_kind)0, scn::v3::basic_scan_context<wchar_t>, (scn::v3::detail::arg_type)17, double, void>(double&)
Line
Count
Source
5130
188k
{
5131
188k
    return make_value<Context>(value).ref_value;
5132
188k
}
void* scn::v3::detail::make_arg<(scn::v3::detail::scan_arg_store_kind)0, scn::v3::basic_scan_context<wchar_t>, (scn::v3::detail::arg_type)11, bool, void>(bool&)
Line
Count
Source
5130
16.7k
{
5131
16.7k
    return make_value<Context>(value).ref_value;
5132
16.7k
}
void* scn::v3::detail::make_arg<(scn::v3::detail::scan_arg_store_kind)0, scn::v3::basic_scan_context<wchar_t>, (scn::v3::detail::arg_type)15, void*, void>(void*&)
Line
Count
Source
5130
16.7k
{
5131
16.7k
    return make_value<Context>(value).ref_value;
5132
16.7k
}
void* scn::v3::detail::make_arg<(scn::v3::detail::scan_arg_store_kind)0, scn::v3::basic_scan_context<wchar_t>, (scn::v3::detail::arg_type)21, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, void>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&)
Line
Count
Source
5130
16.7k
{
5131
16.7k
    return make_value<Context>(value).ref_value;
5132
16.7k
}
void* scn::v3::detail::make_arg<(scn::v3::detail::scan_arg_store_kind)0, scn::v3::basic_scan_context<wchar_t>, (scn::v3::detail::arg_type)22, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, void>(std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >&)
Line
Count
Source
5130
31.4M
{
5131
31.4M
    return make_value<Context>(value).ref_value;
5132
31.4M
}
void* scn::v3::detail::make_arg<(scn::v3::detail::scan_arg_store_kind)0, scn::v3::basic_scan_context<wchar_t>, (scn::v3::detail::arg_type)20, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >, void>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&)
Line
Count
Source
5130
15.7M
{
5131
15.7M
    return make_value<Context>(value).ref_value;
5132
15.7M
}
void* scn::v3::detail::make_arg<(scn::v3::detail::scan_arg_store_kind)0, scn::v3::basic_scan_context<char>, (scn::v3::detail::arg_type)1, signed char, void>(signed char&)
Line
Count
Source
5130
624k
{
5131
624k
    return make_value<Context>(value).ref_value;
5132
624k
}
void* scn::v3::detail::make_arg<(scn::v3::detail::scan_arg_store_kind)0, scn::v3::basic_scan_context<char>, (scn::v3::detail::arg_type)6, unsigned char, void>(unsigned char&)
Line
Count
Source
5130
603k
{
5131
603k
    return make_value<Context>(value).ref_value;
5132
603k
}
void* scn::v3::detail::make_arg<(scn::v3::detail::scan_arg_store_kind)0, scn::v3::basic_scan_context<char>, (scn::v3::detail::arg_type)5, long long, void>(long long&)
Line
Count
Source
5130
801k
{
5131
801k
    return make_value<Context>(value).ref_value;
5132
801k
}
void* scn::v3::detail::make_arg<(scn::v3::detail::scan_arg_store_kind)0, scn::v3::basic_scan_context<char>, (scn::v3::detail::arg_type)10, unsigned long long, void>(unsigned long long&)
Line
Count
Source
5130
688k
{
5131
688k
    return make_value<Context>(value).ref_value;
5132
688k
}
void* scn::v3::detail::make_arg<(scn::v3::detail::scan_arg_store_kind)0, scn::v3::basic_scan_context<wchar_t>, (scn::v3::detail::arg_type)1, signed char, void>(signed char&)
Line
Count
Source
5130
156k
{
5131
156k
    return make_value<Context>(value).ref_value;
5132
156k
}
void* scn::v3::detail::make_arg<(scn::v3::detail::scan_arg_store_kind)0, scn::v3::basic_scan_context<wchar_t>, (scn::v3::detail::arg_type)6, unsigned char, void>(unsigned char&)
Line
Count
Source
5130
156k
{
5131
156k
    return make_value<Context>(value).ref_value;
5132
156k
}
void* scn::v3::detail::make_arg<(scn::v3::detail::scan_arg_store_kind)0, scn::v3::basic_scan_context<wchar_t>, (scn::v3::detail::arg_type)5, long long, void>(long long&)
Line
Count
Source
5130
157k
{
5131
157k
    return make_value<Context>(value).ref_value;
5132
157k
}
void* scn::v3::detail::make_arg<(scn::v3::detail::scan_arg_store_kind)0, scn::v3::basic_scan_context<wchar_t>, (scn::v3::detail::arg_type)10, unsigned long long, void>(unsigned long long&)
Line
Count
Source
5130
156k
{
5131
156k
    return make_value<Context>(value).ref_value;
5132
156k
}
void* scn::v3::detail::make_arg<(scn::v3::detail::scan_arg_store_kind)0, scn::v3::basic_scan_context<char>, (scn::v3::detail::arg_type)16, float, void>(float&)
Line
Count
Source
5130
1.34M
{
5131
1.34M
    return make_value<Context>(value).ref_value;
5132
1.34M
}
void* scn::v3::detail::make_arg<(scn::v3::detail::scan_arg_store_kind)0, scn::v3::basic_scan_context<char>, (scn::v3::detail::arg_type)18, long double, void>(long double&)
Line
Count
Source
5130
1.47M
{
5131
1.47M
    return make_value<Context>(value).ref_value;
5132
1.47M
}
void* scn::v3::detail::make_arg<(scn::v3::detail::scan_arg_store_kind)0, scn::v3::basic_scan_context<wchar_t>, (scn::v3::detail::arg_type)16, float, void>(float&)
Line
Count
Source
5130
171k
{
5131
171k
    return make_value<Context>(value).ref_value;
5132
171k
}
void* scn::v3::detail::make_arg<(scn::v3::detail::scan_arg_store_kind)0, scn::v3::basic_scan_context<wchar_t>, (scn::v3::detail::arg_type)18, long double, void>(long double&)
Line
Count
Source
5130
172k
{
5131
172k
    return make_value<Context>(value).ref_value;
5132
172k
}
5133
template <scan_arg_store_kind Kind,
5134
          typename Context,
5135
          arg_type,
5136
          typename T,
5137
          typename = std::enable_if_t<Kind == scan_arg_store_kind::packed>>
5138
constexpr arg_value make_arg(T& value)
5139
{
5140
    return make_value<Context>(value);
5141
}
5142
template <scan_arg_store_kind Kind,
5143
          typename Context,
5144
          arg_type,
5145
          typename T,
5146
          typename = std::enable_if_t<Kind == scan_arg_store_kind::unpacked>>
5147
constexpr basic_scan_arg<Context> make_arg(T&& value)
5148
{
5149
    return make_arg<Context>(SCN_FWD(value));
5150
}
5151
5152
template <typename Context>
5153
constexpr arg_value& get_arg_value(basic_scan_arg<Context>& arg);
5154
}  // namespace detail
5155
5156
template <typename Visitor, typename Ctx>
5157
constexpr decltype(auto) visit_scan_arg(Visitor&& vis,
5158
                                        basic_scan_arg<Ctx>& arg);
5159
5160
/**
5161
 * Type-erased scanning argument.
5162
 *
5163
 * Contains a pointer to the value contained in a `scan_arg_store`.
5164
 */
5165
template <typename Context>
5166
class basic_scan_arg {
5167
public:
5168
    /**
5169
     * Enables scanning of a user-defined type.
5170
     *
5171
     * Contains a pointer to the value contained in a `scan_arg_store`, and
5172
     * a callback for parsing the format string, and scanning the value.
5173
     *
5174
     * \see scn::visit_scan_arg
5175
     */
5176
    class handle {
5177
    public:
5178
        /**
5179
         * Parse the format string in `parse_ctx`, and scan the value from
5180
         * `ctx`.
5181
         *
5182
         * \return Any error returned by the scanner
5183
         */
5184
        scan_error scan(typename Context::parse_context_type& parse_ctx,
5185
                        Context& ctx) const
5186
0
        {
5187
0
            return m_custom.scan(m_custom.value, &parse_ctx, &ctx);
5188
0
        }
Unexecuted instantiation: scn::v3::basic_scan_arg<scn::v3::basic_scan_context<char> >::handle::scan(scn::v3::basic_scan_parse_context<char>&, scn::v3::basic_scan_context<char>&) const
Unexecuted instantiation: scn::v3::basic_scan_arg<scn::v3::basic_scan_context<wchar_t> >::handle::scan(scn::v3::basic_scan_parse_context<wchar_t>&, scn::v3::basic_scan_context<wchar_t>&) const
5189
5190
    private:
5191
0
        explicit handle(detail::custom_value_type custom) : m_custom(custom) {}
Unexecuted instantiation: scn::v3::basic_scan_arg<scn::v3::basic_scan_context<char> >::handle::handle(scn::v3::detail::custom_value_type)
Unexecuted instantiation: scn::v3::basic_scan_arg<scn::v3::basic_scan_context<wchar_t> >::handle::handle(scn::v3::detail::custom_value_type)
5192
5193
        template <typename Visitor, typename C>
5194
        friend constexpr decltype(auto) visit_scan_arg(Visitor&& vis,
5195
                                                       basic_scan_arg<C>& arg);
5196
5197
        detail::custom_value_type m_custom;
5198
    };
5199
5200
    /// Construct a `basic_scan_arg` which doesn't contain an argument.
5201
70.3M
    constexpr basic_scan_arg() = default;
scn::v3::basic_scan_arg<scn::v3::basic_scan_context<char> >::basic_scan_arg()
Line
Count
Source
5201
9.79M
    constexpr basic_scan_arg() = default;
scn::v3::basic_scan_arg<scn::v3::basic_scan_context<wchar_t> >::basic_scan_arg()
Line
Count
Source
5201
60.5M
    constexpr basic_scan_arg() = default;
5202
5203
    /**
5204
     * @return `true` if `*this` contains an argument
5205
     */
5206
    constexpr explicit operator bool() const noexcept
5207
101M
    {
5208
101M
        return m_type != detail::arg_type::none_type;
5209
101M
    }
scn::v3::basic_scan_arg<scn::v3::basic_scan_context<char> >::operator bool() const
Line
Count
Source
5207
16.8M
    {
5208
16.8M
        return m_type != detail::arg_type::none_type;
5209
16.8M
    }
scn::v3::basic_scan_arg<scn::v3::basic_scan_context<wchar_t> >::operator bool() const
Line
Count
Source
5207
85.1M
    {
5208
85.1M
        return m_type != detail::arg_type::none_type;
5209
85.1M
    }
5210
5211
    SCN_NODISCARD constexpr detail::arg_type type() const
5212
64.0M
    {
5213
64.0M
        return m_type;
5214
64.0M
    }
scn::v3::basic_scan_arg<scn::v3::basic_scan_context<char> >::type() const
Line
Count
Source
5212
14.3M
    {
5213
14.3M
        return m_type;
5214
14.3M
    }
scn::v3::basic_scan_arg<scn::v3::basic_scan_context<wchar_t> >::type() const
Line
Count
Source
5212
49.6M
    {
5213
49.6M
        return m_type;
5214
49.6M
    }
5215
5216
    SCN_NODISCARD constexpr detail::arg_value& value()
5217
    {
5218
        return m_value;
5219
    }
5220
    SCN_NODISCARD constexpr const detail::arg_value& value() const
5221
    {
5222
        return m_value;
5223
    }
5224
5225
private:
5226
    template <typename ContextType, typename T>
5227
    friend constexpr basic_scan_arg<ContextType> detail::make_arg(T& value);
5228
5229
    template <typename C>
5230
    friend constexpr detail::arg_value& detail::get_arg_value(
5231
        basic_scan_arg<C>& arg);
5232
5233
    template <typename Visitor, typename C>
5234
    friend constexpr decltype(auto) visit_scan_arg(Visitor&& vis,
5235
                                                   basic_scan_arg<C>& arg);
5236
5237
    friend class basic_scan_args<Context>;
5238
5239
    detail::arg_value m_value{};
5240
    detail::arg_type m_type{detail::arg_type::none_type};
5241
};
5242
5243
namespace detail {
5244
template <typename Context>
5245
constexpr arg_value& get_arg_value(basic_scan_arg<Context>& arg)
5246
{
5247
    return arg.m_value;
5248
}
5249
5250
template <typename CharT>
5251
constexpr bool all_types_builtin()
5252
0
{
5253
0
    return true;
5254
0
}
Unexecuted instantiation: bool scn::v3::detail::all_types_builtin<char>()
Unexecuted instantiation: bool scn::v3::detail::all_types_builtin<wchar_t>()
5255
template <typename CharT, typename T, typename... Args>
5256
constexpr bool all_types_builtin()
5257
0
{
5258
0
    return mapped_type_constant<T, CharT>::value != arg_type::custom_type &&
5259
0
           all_types_builtin<CharT, Args...>();
5260
0
}
Unexecuted instantiation: bool scn::v3::detail::all_types_builtin<char, char>()
Unexecuted instantiation: bool scn::v3::detail::all_types_builtin<char, int>()
Unexecuted instantiation: bool scn::v3::detail::all_types_builtin<char, unsigned int>()
Unexecuted instantiation: bool scn::v3::detail::all_types_builtin<char, double>()
Unexecuted instantiation: bool scn::v3::detail::all_types_builtin<char, bool>()
Unexecuted instantiation: bool scn::v3::detail::all_types_builtin<char, void*>()
Unexecuted instantiation: bool scn::v3::detail::all_types_builtin<char, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >>()
Unexecuted instantiation: bool scn::v3::detail::all_types_builtin<char, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >>()
Unexecuted instantiation: bool scn::v3::detail::all_types_builtin<char, std::__1::basic_string_view<char, std::__1::char_traits<char> >>()
Unexecuted instantiation: bool scn::v3::detail::all_types_builtin<wchar_t, wchar_t>()
Unexecuted instantiation: bool scn::v3::detail::all_types_builtin<wchar_t, int>()
Unexecuted instantiation: bool scn::v3::detail::all_types_builtin<wchar_t, unsigned int>()
Unexecuted instantiation: bool scn::v3::detail::all_types_builtin<wchar_t, double>()
Unexecuted instantiation: bool scn::v3::detail::all_types_builtin<wchar_t, bool>()
Unexecuted instantiation: bool scn::v3::detail::all_types_builtin<wchar_t, void*>()
Unexecuted instantiation: bool scn::v3::detail::all_types_builtin<wchar_t, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >>()
Unexecuted instantiation: bool scn::v3::detail::all_types_builtin<wchar_t, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >>()
Unexecuted instantiation: bool scn::v3::detail::all_types_builtin<wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >>()
Unexecuted instantiation: bool scn::v3::detail::all_types_builtin<char, signed char>()
Unexecuted instantiation: bool scn::v3::detail::all_types_builtin<char, unsigned char>()
Unexecuted instantiation: bool scn::v3::detail::all_types_builtin<char, long long>()
Unexecuted instantiation: bool scn::v3::detail::all_types_builtin<char, unsigned long long>()
Unexecuted instantiation: bool scn::v3::detail::all_types_builtin<wchar_t, signed char>()
Unexecuted instantiation: bool scn::v3::detail::all_types_builtin<wchar_t, unsigned char>()
Unexecuted instantiation: bool scn::v3::detail::all_types_builtin<wchar_t, long long>()
Unexecuted instantiation: bool scn::v3::detail::all_types_builtin<wchar_t, unsigned long long>()
Unexecuted instantiation: bool scn::v3::detail::all_types_builtin<char, float>()
Unexecuted instantiation: bool scn::v3::detail::all_types_builtin<char, long double>()
Unexecuted instantiation: bool scn::v3::detail::all_types_builtin<wchar_t, float>()
Unexecuted instantiation: bool scn::v3::detail::all_types_builtin<wchar_t, long double>()
5261
5262
template <typename CharT, typename... Args>
5263
constexpr scan_arg_store_kind determine_arg_store_kind()
5264
0
{
5265
0
    if (sizeof...(Args) > max_packed_args) {
5266
0
        return scan_arg_store_kind::unpacked;
5267
0
    }
5268
0
#if !(SCN_CLANG && SCN_APPLE)
5269
0
    // This doesn't work on Apple Clang. I don't know why
5270
0
    if (all_types_builtin<CharT, Args...>()) {
5271
0
        return scan_arg_store_kind::builtin;
5272
0
    }
5273
0
#endif
5274
0
    return scan_arg_store_kind::packed;
5275
0
}
Unexecuted instantiation: scn::v3::detail::scan_arg_store_kind scn::v3::detail::determine_arg_store_kind<char, char>()
Unexecuted instantiation: scn::v3::detail::scan_arg_store_kind scn::v3::detail::determine_arg_store_kind<char, int>()
Unexecuted instantiation: scn::v3::detail::scan_arg_store_kind scn::v3::detail::determine_arg_store_kind<char, unsigned int>()
Unexecuted instantiation: scn::v3::detail::scan_arg_store_kind scn::v3::detail::determine_arg_store_kind<char, double>()
Unexecuted instantiation: scn::v3::detail::scan_arg_store_kind scn::v3::detail::determine_arg_store_kind<char, bool>()
Unexecuted instantiation: scn::v3::detail::scan_arg_store_kind scn::v3::detail::determine_arg_store_kind<char, void*>()
Unexecuted instantiation: scn::v3::detail::scan_arg_store_kind scn::v3::detail::determine_arg_store_kind<char, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >()
Unexecuted instantiation: scn::v3::detail::scan_arg_store_kind scn::v3::detail::determine_arg_store_kind<char, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >()
Unexecuted instantiation: scn::v3::detail::scan_arg_store_kind scn::v3::detail::determine_arg_store_kind<char, std::__1::basic_string_view<char, std::__1::char_traits<char> > >()
Unexecuted instantiation: scn::v3::detail::scan_arg_store_kind scn::v3::detail::determine_arg_store_kind<wchar_t, wchar_t>()
Unexecuted instantiation: scn::v3::detail::scan_arg_store_kind scn::v3::detail::determine_arg_store_kind<wchar_t, int>()
Unexecuted instantiation: scn::v3::detail::scan_arg_store_kind scn::v3::detail::determine_arg_store_kind<wchar_t, unsigned int>()
Unexecuted instantiation: scn::v3::detail::scan_arg_store_kind scn::v3::detail::determine_arg_store_kind<wchar_t, double>()
Unexecuted instantiation: scn::v3::detail::scan_arg_store_kind scn::v3::detail::determine_arg_store_kind<wchar_t, bool>()
Unexecuted instantiation: scn::v3::detail::scan_arg_store_kind scn::v3::detail::determine_arg_store_kind<wchar_t, void*>()
Unexecuted instantiation: scn::v3::detail::scan_arg_store_kind scn::v3::detail::determine_arg_store_kind<wchar_t, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >()
Unexecuted instantiation: scn::v3::detail::scan_arg_store_kind scn::v3::detail::determine_arg_store_kind<wchar_t, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >()
Unexecuted instantiation: scn::v3::detail::scan_arg_store_kind scn::v3::detail::determine_arg_store_kind<wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >()
Unexecuted instantiation: scn::v3::detail::scan_arg_store_kind scn::v3::detail::determine_arg_store_kind<char, signed char>()
Unexecuted instantiation: scn::v3::detail::scan_arg_store_kind scn::v3::detail::determine_arg_store_kind<char, unsigned char>()
Unexecuted instantiation: scn::v3::detail::scan_arg_store_kind scn::v3::detail::determine_arg_store_kind<char, long long>()
Unexecuted instantiation: scn::v3::detail::scan_arg_store_kind scn::v3::detail::determine_arg_store_kind<char, unsigned long long>()
Unexecuted instantiation: scn::v3::detail::scan_arg_store_kind scn::v3::detail::determine_arg_store_kind<wchar_t, signed char>()
Unexecuted instantiation: scn::v3::detail::scan_arg_store_kind scn::v3::detail::determine_arg_store_kind<wchar_t, unsigned char>()
Unexecuted instantiation: scn::v3::detail::scan_arg_store_kind scn::v3::detail::determine_arg_store_kind<wchar_t, long long>()
Unexecuted instantiation: scn::v3::detail::scan_arg_store_kind scn::v3::detail::determine_arg_store_kind<wchar_t, unsigned long long>()
Unexecuted instantiation: scn::v3::detail::scan_arg_store_kind scn::v3::detail::determine_arg_store_kind<char, float>()
Unexecuted instantiation: scn::v3::detail::scan_arg_store_kind scn::v3::detail::determine_arg_store_kind<char, long double>()
Unexecuted instantiation: scn::v3::detail::scan_arg_store_kind scn::v3::detail::determine_arg_store_kind<wchar_t, float>()
Unexecuted instantiation: scn::v3::detail::scan_arg_store_kind scn::v3::detail::determine_arg_store_kind<wchar_t, long double>()
5276
5277
template <scan_arg_store_kind Kind, typename CharT, typename... Args>
5278
constexpr size_t compute_arg_store_desc()
5279
0
{
5280
0
    if constexpr (Kind == scan_arg_store_kind::builtin) {
5281
0
        return encode_types<CharT, Args...>();
5282
0
    }
5283
0
    else if constexpr (Kind == scan_arg_store_kind::packed) {
5284
0
        return encode_types<CharT, Args...>() | has_custom_types_bit;
5285
0
    }
5286
0
    else {
5287
0
        return sizeof...(Args) | is_unpacked_bit;
5288
0
    }
5289
0
}
Unexecuted instantiation: unsigned long scn::v3::detail::compute_arg_store_desc<(scn::v3::detail::scan_arg_store_kind)0, char, char>()
Unexecuted instantiation: unsigned long scn::v3::detail::compute_arg_store_desc<(scn::v3::detail::scan_arg_store_kind)0, char, int>()
Unexecuted instantiation: unsigned long scn::v3::detail::compute_arg_store_desc<(scn::v3::detail::scan_arg_store_kind)0, char, unsigned int>()
Unexecuted instantiation: unsigned long scn::v3::detail::compute_arg_store_desc<(scn::v3::detail::scan_arg_store_kind)0, char, double>()
Unexecuted instantiation: unsigned long scn::v3::detail::compute_arg_store_desc<(scn::v3::detail::scan_arg_store_kind)0, char, bool>()
Unexecuted instantiation: unsigned long scn::v3::detail::compute_arg_store_desc<(scn::v3::detail::scan_arg_store_kind)0, char, void*>()
Unexecuted instantiation: unsigned long scn::v3::detail::compute_arg_store_desc<(scn::v3::detail::scan_arg_store_kind)0, char, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >()
Unexecuted instantiation: unsigned long scn::v3::detail::compute_arg_store_desc<(scn::v3::detail::scan_arg_store_kind)0, char, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >()
Unexecuted instantiation: unsigned long scn::v3::detail::compute_arg_store_desc<(scn::v3::detail::scan_arg_store_kind)0, char, std::__1::basic_string_view<char, std::__1::char_traits<char> > >()
Unexecuted instantiation: unsigned long scn::v3::detail::compute_arg_store_desc<(scn::v3::detail::scan_arg_store_kind)0, wchar_t, wchar_t>()
Unexecuted instantiation: unsigned long scn::v3::detail::compute_arg_store_desc<(scn::v3::detail::scan_arg_store_kind)0, wchar_t, int>()
Unexecuted instantiation: unsigned long scn::v3::detail::compute_arg_store_desc<(scn::v3::detail::scan_arg_store_kind)0, wchar_t, unsigned int>()
Unexecuted instantiation: unsigned long scn::v3::detail::compute_arg_store_desc<(scn::v3::detail::scan_arg_store_kind)0, wchar_t, double>()
Unexecuted instantiation: unsigned long scn::v3::detail::compute_arg_store_desc<(scn::v3::detail::scan_arg_store_kind)0, wchar_t, bool>()
Unexecuted instantiation: unsigned long scn::v3::detail::compute_arg_store_desc<(scn::v3::detail::scan_arg_store_kind)0, wchar_t, void*>()
Unexecuted instantiation: unsigned long scn::v3::detail::compute_arg_store_desc<(scn::v3::detail::scan_arg_store_kind)0, wchar_t, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >()
Unexecuted instantiation: unsigned long scn::v3::detail::compute_arg_store_desc<(scn::v3::detail::scan_arg_store_kind)0, wchar_t, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >()
Unexecuted instantiation: unsigned long scn::v3::detail::compute_arg_store_desc<(scn::v3::detail::scan_arg_store_kind)0, wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >()
Unexecuted instantiation: unsigned long scn::v3::detail::compute_arg_store_desc<(scn::v3::detail::scan_arg_store_kind)0, char, signed char>()
Unexecuted instantiation: unsigned long scn::v3::detail::compute_arg_store_desc<(scn::v3::detail::scan_arg_store_kind)0, char, unsigned char>()
Unexecuted instantiation: unsigned long scn::v3::detail::compute_arg_store_desc<(scn::v3::detail::scan_arg_store_kind)0, char, long long>()
Unexecuted instantiation: unsigned long scn::v3::detail::compute_arg_store_desc<(scn::v3::detail::scan_arg_store_kind)0, char, unsigned long long>()
Unexecuted instantiation: unsigned long scn::v3::detail::compute_arg_store_desc<(scn::v3::detail::scan_arg_store_kind)0, wchar_t, signed char>()
Unexecuted instantiation: unsigned long scn::v3::detail::compute_arg_store_desc<(scn::v3::detail::scan_arg_store_kind)0, wchar_t, unsigned char>()
Unexecuted instantiation: unsigned long scn::v3::detail::compute_arg_store_desc<(scn::v3::detail::scan_arg_store_kind)0, wchar_t, long long>()
Unexecuted instantiation: unsigned long scn::v3::detail::compute_arg_store_desc<(scn::v3::detail::scan_arg_store_kind)0, wchar_t, unsigned long long>()
Unexecuted instantiation: unsigned long scn::v3::detail::compute_arg_store_desc<(scn::v3::detail::scan_arg_store_kind)0, char, float>()
Unexecuted instantiation: unsigned long scn::v3::detail::compute_arg_store_desc<(scn::v3::detail::scan_arg_store_kind)0, char, long double>()
Unexecuted instantiation: unsigned long scn::v3::detail::compute_arg_store_desc<(scn::v3::detail::scan_arg_store_kind)0, wchar_t, float>()
Unexecuted instantiation: unsigned long scn::v3::detail::compute_arg_store_desc<(scn::v3::detail::scan_arg_store_kind)0, wchar_t, long double>()
5290
5291
template <typename Context, typename... Args>
5292
class scan_arg_store {
5293
public:
5294
    static constexpr scan_arg_store_kind kind =
5295
        determine_arg_store_kind<typename Context::char_type, Args...>();
5296
    static constexpr size_t desc =
5297
        compute_arg_store_desc<kind, typename Context::char_type, Args...>();
5298
5299
    using argptr_type = std::conditional_t<
5300
        kind == scan_arg_store_kind::builtin,
5301
        void*,
5302
        std::conditional_t<kind == scan_arg_store_kind::packed,
5303
                           arg_value,
5304
                           basic_scan_arg<Context>>>;
5305
    using argptrs_type = std::array<argptr_type, sizeof...(Args)>;
5306
5307
    constexpr scan_arg_store()
5308
        : m_argptrs(std::apply(make_argptrs<Args...>, m_args))
5309
57.6M
    {
5310
57.6M
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, char>::scan_arg_store()
Line
Count
Source
5309
8.37k
    {
5310
8.37k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, int>::scan_arg_store()
Line
Count
Source
5309
795k
    {
5310
795k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, unsigned int>::scan_arg_store()
Line
Count
Source
5309
689k
    {
5310
689k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, double>::scan_arg_store()
Line
Count
Source
5309
1.46M
    {
5310
1.46M
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, bool>::scan_arg_store()
Line
Count
Source
5309
8.37k
    {
5310
8.37k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, void*>::scan_arg_store()
Line
Count
Source
5309
8.37k
    {
5310
8.37k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::scan_arg_store()
Line
Count
Source
5309
270k
    {
5310
270k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::scan_arg_store()
Line
Count
Source
5309
8.37k
    {
5310
8.37k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >::scan_arg_store()
Line
Count
Source
5309
138k
    {
5310
138k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, wchar_t>::scan_arg_store()
Line
Count
Source
5309
16.7k
    {
5310
16.7k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, int>::scan_arg_store()
Line
Count
Source
5309
173k
    {
5310
173k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, unsigned int>::scan_arg_store()
Line
Count
Source
5309
173k
    {
5310
173k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, double>::scan_arg_store()
Line
Count
Source
5309
188k
    {
5310
188k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, bool>::scan_arg_store()
Line
Count
Source
5309
16.7k
    {
5310
16.7k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, void*>::scan_arg_store()
Line
Count
Source
5309
16.7k
    {
5310
16.7k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::scan_arg_store()
Line
Count
Source
5309
16.7k
    {
5310
16.7k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::scan_arg_store()
Line
Count
Source
5309
31.4M
    {
5310
31.4M
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::scan_arg_store()
Line
Count
Source
5309
15.7M
    {
5310
15.7M
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, signed char>::scan_arg_store()
Line
Count
Source
5309
624k
    {
5310
624k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, unsigned char>::scan_arg_store()
Line
Count
Source
5309
603k
    {
5310
603k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, long long>::scan_arg_store()
Line
Count
Source
5309
801k
    {
5310
801k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, unsigned long long>::scan_arg_store()
Line
Count
Source
5309
688k
    {
5310
688k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, signed char>::scan_arg_store()
Line
Count
Source
5309
156k
    {
5310
156k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, unsigned char>::scan_arg_store()
Line
Count
Source
5309
156k
    {
5310
156k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, long long>::scan_arg_store()
Line
Count
Source
5309
157k
    {
5310
157k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, unsigned long long>::scan_arg_store()
Line
Count
Source
5309
156k
    {
5310
156k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, float>::scan_arg_store()
Line
Count
Source
5309
1.34M
    {
5310
1.34M
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, long double>::scan_arg_store()
Line
Count
Source
5309
1.47M
    {
5310
1.47M
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, float>::scan_arg_store()
Line
Count
Source
5309
171k
    {
5310
171k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, long double>::scan_arg_store()
Line
Count
Source
5309
172k
    {
5310
172k
    }
5311
5312
    constexpr explicit scan_arg_store(std::tuple<Args...>&& a)
5313
        : m_args(std::move(a)),
5314
          m_argptrs(std::apply(make_argptrs<Args...>, m_args))
5315
    {
5316
    }
5317
5318
    template <typename... A>
5319
    static constexpr argptrs_type make_argptrs(A&... args)
5320
57.6M
    {
5321
57.6M
        return {detail::make_arg<
5322
57.6M
            kind, Context,
5323
57.6M
            mapped_type_constant<remove_cvref_t<A>,
5324
57.6M
                                 typename Context::char_type>::value>(args)...};
5325
57.6M
    }
std::__1::array<void*, 1ul> scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, char>::make_argptrs<char>(char&)
Line
Count
Source
5320
8.37k
    {
5321
8.37k
        return {detail::make_arg<
5322
8.37k
            kind, Context,
5323
8.37k
            mapped_type_constant<remove_cvref_t<A>,
5324
8.37k
                                 typename Context::char_type>::value>(args)...};
5325
8.37k
    }
std::__1::array<void*, 1ul> scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, int>::make_argptrs<int>(int&)
Line
Count
Source
5320
795k
    {
5321
795k
        return {detail::make_arg<
5322
795k
            kind, Context,
5323
795k
            mapped_type_constant<remove_cvref_t<A>,
5324
795k
                                 typename Context::char_type>::value>(args)...};
5325
795k
    }
std::__1::array<void*, 1ul> scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, unsigned int>::make_argptrs<unsigned int>(unsigned int&)
Line
Count
Source
5320
689k
    {
5321
689k
        return {detail::make_arg<
5322
689k
            kind, Context,
5323
689k
            mapped_type_constant<remove_cvref_t<A>,
5324
689k
                                 typename Context::char_type>::value>(args)...};
5325
689k
    }
std::__1::array<void*, 1ul> scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, double>::make_argptrs<double>(double&)
Line
Count
Source
5320
1.46M
    {
5321
1.46M
        return {detail::make_arg<
5322
1.46M
            kind, Context,
5323
1.46M
            mapped_type_constant<remove_cvref_t<A>,
5324
1.46M
                                 typename Context::char_type>::value>(args)...};
5325
1.46M
    }
std::__1::array<void*, 1ul> scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, bool>::make_argptrs<bool>(bool&)
Line
Count
Source
5320
8.37k
    {
5321
8.37k
        return {detail::make_arg<
5322
8.37k
            kind, Context,
5323
8.37k
            mapped_type_constant<remove_cvref_t<A>,
5324
8.37k
                                 typename Context::char_type>::value>(args)...};
5325
8.37k
    }
std::__1::array<void*, 1ul> scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, void*>::make_argptrs<void*>(void*&)
Line
Count
Source
5320
8.37k
    {
5321
8.37k
        return {detail::make_arg<
5322
8.37k
            kind, Context,
5323
8.37k
            mapped_type_constant<remove_cvref_t<A>,
5324
8.37k
                                 typename Context::char_type>::value>(args)...};
5325
8.37k
    }
std::__1::array<void*, 1ul> scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::make_argptrs<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&)
Line
Count
Source
5320
270k
    {
5321
270k
        return {detail::make_arg<
5322
270k
            kind, Context,
5323
270k
            mapped_type_constant<remove_cvref_t<A>,
5324
270k
                                 typename Context::char_type>::value>(args)...};
5325
270k
    }
std::__1::array<void*, 1ul> scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::make_argptrs<std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >(std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >&)
Line
Count
Source
5320
8.37k
    {
5321
8.37k
        return {detail::make_arg<
5322
8.37k
            kind, Context,
5323
8.37k
            mapped_type_constant<remove_cvref_t<A>,
5324
8.37k
                                 typename Context::char_type>::value>(args)...};
5325
8.37k
    }
std::__1::array<void*, 1ul> scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >::make_argptrs<std::__1::basic_string_view<char, std::__1::char_traits<char> > >(std::__1::basic_string_view<char, std::__1::char_traits<char> >&)
Line
Count
Source
5320
138k
    {
5321
138k
        return {detail::make_arg<
5322
138k
            kind, Context,
5323
138k
            mapped_type_constant<remove_cvref_t<A>,
5324
138k
                                 typename Context::char_type>::value>(args)...};
5325
138k
    }
std::__1::array<void*, 1ul> scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, wchar_t>::make_argptrs<wchar_t>(wchar_t&)
Line
Count
Source
5320
16.7k
    {
5321
16.7k
        return {detail::make_arg<
5322
16.7k
            kind, Context,
5323
16.7k
            mapped_type_constant<remove_cvref_t<A>,
5324
16.7k
                                 typename Context::char_type>::value>(args)...};
5325
16.7k
    }
std::__1::array<void*, 1ul> scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, int>::make_argptrs<int>(int&)
Line
Count
Source
5320
173k
    {
5321
173k
        return {detail::make_arg<
5322
173k
            kind, Context,
5323
173k
            mapped_type_constant<remove_cvref_t<A>,
5324
173k
                                 typename Context::char_type>::value>(args)...};
5325
173k
    }
std::__1::array<void*, 1ul> scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, unsigned int>::make_argptrs<unsigned int>(unsigned int&)
Line
Count
Source
5320
173k
    {
5321
173k
        return {detail::make_arg<
5322
173k
            kind, Context,
5323
173k
            mapped_type_constant<remove_cvref_t<A>,
5324
173k
                                 typename Context::char_type>::value>(args)...};
5325
173k
    }
std::__1::array<void*, 1ul> scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, double>::make_argptrs<double>(double&)
Line
Count
Source
5320
188k
    {
5321
188k
        return {detail::make_arg<
5322
188k
            kind, Context,
5323
188k
            mapped_type_constant<remove_cvref_t<A>,
5324
188k
                                 typename Context::char_type>::value>(args)...};
5325
188k
    }
std::__1::array<void*, 1ul> scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, bool>::make_argptrs<bool>(bool&)
Line
Count
Source
5320
16.7k
    {
5321
16.7k
        return {detail::make_arg<
5322
16.7k
            kind, Context,
5323
16.7k
            mapped_type_constant<remove_cvref_t<A>,
5324
16.7k
                                 typename Context::char_type>::value>(args)...};
5325
16.7k
    }
std::__1::array<void*, 1ul> scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, void*>::make_argptrs<void*>(void*&)
Line
Count
Source
5320
16.7k
    {
5321
16.7k
        return {detail::make_arg<
5322
16.7k
            kind, Context,
5323
16.7k
            mapped_type_constant<remove_cvref_t<A>,
5324
16.7k
                                 typename Context::char_type>::value>(args)...};
5325
16.7k
    }
std::__1::array<void*, 1ul> scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::make_argptrs<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&)
Line
Count
Source
5320
16.7k
    {
5321
16.7k
        return {detail::make_arg<
5322
16.7k
            kind, Context,
5323
16.7k
            mapped_type_constant<remove_cvref_t<A>,
5324
16.7k
                                 typename Context::char_type>::value>(args)...};
5325
16.7k
    }
std::__1::array<void*, 1ul> scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::make_argptrs<std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >(std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >&)
Line
Count
Source
5320
31.4M
    {
5321
31.4M
        return {detail::make_arg<
5322
31.4M
            kind, Context,
5323
31.4M
            mapped_type_constant<remove_cvref_t<A>,
5324
31.4M
                                 typename Context::char_type>::value>(args)...};
5325
31.4M
    }
std::__1::array<void*, 1ul> scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::make_argptrs<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&)
Line
Count
Source
5320
15.7M
    {
5321
15.7M
        return {detail::make_arg<
5322
15.7M
            kind, Context,
5323
15.7M
            mapped_type_constant<remove_cvref_t<A>,
5324
15.7M
                                 typename Context::char_type>::value>(args)...};
5325
15.7M
    }
std::__1::array<void*, 1ul> scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, signed char>::make_argptrs<signed char>(signed char&)
Line
Count
Source
5320
624k
    {
5321
624k
        return {detail::make_arg<
5322
624k
            kind, Context,
5323
624k
            mapped_type_constant<remove_cvref_t<A>,
5324
624k
                                 typename Context::char_type>::value>(args)...};
5325
624k
    }
std::__1::array<void*, 1ul> scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, unsigned char>::make_argptrs<unsigned char>(unsigned char&)
Line
Count
Source
5320
603k
    {
5321
603k
        return {detail::make_arg<
5322
603k
            kind, Context,
5323
603k
            mapped_type_constant<remove_cvref_t<A>,
5324
603k
                                 typename Context::char_type>::value>(args)...};
5325
603k
    }
std::__1::array<void*, 1ul> scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, long long>::make_argptrs<long long>(long long&)
Line
Count
Source
5320
801k
    {
5321
801k
        return {detail::make_arg<
5322
801k
            kind, Context,
5323
801k
            mapped_type_constant<remove_cvref_t<A>,
5324
801k
                                 typename Context::char_type>::value>(args)...};
5325
801k
    }
std::__1::array<void*, 1ul> scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, unsigned long long>::make_argptrs<unsigned long long>(unsigned long long&)
Line
Count
Source
5320
688k
    {
5321
688k
        return {detail::make_arg<
5322
688k
            kind, Context,
5323
688k
            mapped_type_constant<remove_cvref_t<A>,
5324
688k
                                 typename Context::char_type>::value>(args)...};
5325
688k
    }
std::__1::array<void*, 1ul> scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, signed char>::make_argptrs<signed char>(signed char&)
Line
Count
Source
5320
156k
    {
5321
156k
        return {detail::make_arg<
5322
156k
            kind, Context,
5323
156k
            mapped_type_constant<remove_cvref_t<A>,
5324
156k
                                 typename Context::char_type>::value>(args)...};
5325
156k
    }
std::__1::array<void*, 1ul> scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, unsigned char>::make_argptrs<unsigned char>(unsigned char&)
Line
Count
Source
5320
156k
    {
5321
156k
        return {detail::make_arg<
5322
156k
            kind, Context,
5323
156k
            mapped_type_constant<remove_cvref_t<A>,
5324
156k
                                 typename Context::char_type>::value>(args)...};
5325
156k
    }
std::__1::array<void*, 1ul> scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, long long>::make_argptrs<long long>(long long&)
Line
Count
Source
5320
157k
    {
5321
157k
        return {detail::make_arg<
5322
157k
            kind, Context,
5323
157k
            mapped_type_constant<remove_cvref_t<A>,
5324
157k
                                 typename Context::char_type>::value>(args)...};
5325
157k
    }
std::__1::array<void*, 1ul> scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, unsigned long long>::make_argptrs<unsigned long long>(unsigned long long&)
Line
Count
Source
5320
156k
    {
5321
156k
        return {detail::make_arg<
5322
156k
            kind, Context,
5323
156k
            mapped_type_constant<remove_cvref_t<A>,
5324
156k
                                 typename Context::char_type>::value>(args)...};
5325
156k
    }
std::__1::array<void*, 1ul> scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, float>::make_argptrs<float>(float&)
Line
Count
Source
5320
1.34M
    {
5321
1.34M
        return {detail::make_arg<
5322
1.34M
            kind, Context,
5323
1.34M
            mapped_type_constant<remove_cvref_t<A>,
5324
1.34M
                                 typename Context::char_type>::value>(args)...};
5325
1.34M
    }
std::__1::array<void*, 1ul> scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, long double>::make_argptrs<long double>(long double&)
Line
Count
Source
5320
1.47M
    {
5321
1.47M
        return {detail::make_arg<
5322
1.47M
            kind, Context,
5323
1.47M
            mapped_type_constant<remove_cvref_t<A>,
5324
1.47M
                                 typename Context::char_type>::value>(args)...};
5325
1.47M
    }
std::__1::array<void*, 1ul> scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, float>::make_argptrs<float>(float&)
Line
Count
Source
5320
171k
    {
5321
171k
        return {detail::make_arg<
5322
171k
            kind, Context,
5323
171k
            mapped_type_constant<remove_cvref_t<A>,
5324
171k
                                 typename Context::char_type>::value>(args)...};
5325
171k
    }
std::__1::array<void*, 1ul> scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, long double>::make_argptrs<long double>(long double&)
Line
Count
Source
5320
172k
    {
5321
172k
        return {detail::make_arg<
5322
172k
            kind, Context,
5323
172k
            mapped_type_constant<remove_cvref_t<A>,
5324
172k
                                 typename Context::char_type>::value>(args)...};
5325
172k
    }
5326
5327
    scan_arg_store(const scan_arg_store&) = delete;
5328
    scan_arg_store(scan_arg_store&&) = delete;
5329
    scan_arg_store& operator=(const scan_arg_store&) = delete;
5330
    scan_arg_store& operator=(scan_arg_store&&) = delete;
5331
31.7M
    ~scan_arg_store() = default;
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::~scan_arg_store()
Line
Count
Source
5331
270k
    ~scan_arg_store() = default;
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::~scan_arg_store()
Line
Count
Source
5331
8.37k
    ~scan_arg_store() = default;
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::~scan_arg_store()
Line
Count
Source
5331
16.7k
    ~scan_arg_store() = default;
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::~scan_arg_store()
Line
Count
Source
5331
31.4M
    ~scan_arg_store() = default;
5332
5333
    std::tuple<Args...>& args()
5334
57.6M
    {
5335
57.6M
        return m_args;
5336
57.6M
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, char>::args()
Line
Count
Source
5334
8.37k
    {
5335
8.37k
        return m_args;
5336
8.37k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, int>::args()
Line
Count
Source
5334
795k
    {
5335
795k
        return m_args;
5336
795k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, unsigned int>::args()
Line
Count
Source
5334
689k
    {
5335
689k
        return m_args;
5336
689k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, double>::args()
Line
Count
Source
5334
1.46M
    {
5335
1.46M
        return m_args;
5336
1.46M
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, bool>::args()
Line
Count
Source
5334
8.37k
    {
5335
8.37k
        return m_args;
5336
8.37k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, void*>::args()
Line
Count
Source
5334
8.37k
    {
5335
8.37k
        return m_args;
5336
8.37k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::args()
Line
Count
Source
5334
270k
    {
5335
270k
        return m_args;
5336
270k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::args()
Line
Count
Source
5334
8.37k
    {
5335
8.37k
        return m_args;
5336
8.37k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >::args()
Line
Count
Source
5334
138k
    {
5335
138k
        return m_args;
5336
138k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, wchar_t>::args()
Line
Count
Source
5334
16.7k
    {
5335
16.7k
        return m_args;
5336
16.7k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, int>::args()
Line
Count
Source
5334
173k
    {
5335
173k
        return m_args;
5336
173k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, unsigned int>::args()
Line
Count
Source
5334
173k
    {
5335
173k
        return m_args;
5336
173k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, double>::args()
Line
Count
Source
5334
188k
    {
5335
188k
        return m_args;
5336
188k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, bool>::args()
Line
Count
Source
5334
16.7k
    {
5335
16.7k
        return m_args;
5336
16.7k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, void*>::args()
Line
Count
Source
5334
16.7k
    {
5335
16.7k
        return m_args;
5336
16.7k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::args()
Line
Count
Source
5334
16.7k
    {
5335
16.7k
        return m_args;
5336
16.7k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::args()
Line
Count
Source
5334
31.4M
    {
5335
31.4M
        return m_args;
5336
31.4M
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::args()
Line
Count
Source
5334
15.7M
    {
5335
15.7M
        return m_args;
5336
15.7M
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, signed char>::args()
Line
Count
Source
5334
624k
    {
5335
624k
        return m_args;
5336
624k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, unsigned char>::args()
Line
Count
Source
5334
603k
    {
5335
603k
        return m_args;
5336
603k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, long long>::args()
Line
Count
Source
5334
801k
    {
5335
801k
        return m_args;
5336
801k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, unsigned long long>::args()
Line
Count
Source
5334
688k
    {
5335
688k
        return m_args;
5336
688k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, signed char>::args()
Line
Count
Source
5334
156k
    {
5335
156k
        return m_args;
5336
156k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, unsigned char>::args()
Line
Count
Source
5334
156k
    {
5335
156k
        return m_args;
5336
156k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, long long>::args()
Line
Count
Source
5334
157k
    {
5335
157k
        return m_args;
5336
157k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, unsigned long long>::args()
Line
Count
Source
5334
156k
    {
5335
156k
        return m_args;
5336
156k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, float>::args()
Line
Count
Source
5334
1.34M
    {
5335
1.34M
        return m_args;
5336
1.34M
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, long double>::args()
Line
Count
Source
5334
1.47M
    {
5335
1.47M
        return m_args;
5336
1.47M
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, float>::args()
Line
Count
Source
5334
171k
    {
5335
171k
        return m_args;
5336
171k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, long double>::args()
Line
Count
Source
5334
172k
    {
5335
172k
        return m_args;
5336
172k
    }
5337
5338
    argptrs_type& arg_pointers()
5339
57.6M
    {
5340
57.6M
        return m_argptrs;
5341
57.6M
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, char>::arg_pointers()
Line
Count
Source
5339
8.37k
    {
5340
8.37k
        return m_argptrs;
5341
8.37k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, int>::arg_pointers()
Line
Count
Source
5339
795k
    {
5340
795k
        return m_argptrs;
5341
795k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, unsigned int>::arg_pointers()
Line
Count
Source
5339
689k
    {
5340
689k
        return m_argptrs;
5341
689k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, double>::arg_pointers()
Line
Count
Source
5339
1.46M
    {
5340
1.46M
        return m_argptrs;
5341
1.46M
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, bool>::arg_pointers()
Line
Count
Source
5339
8.37k
    {
5340
8.37k
        return m_argptrs;
5341
8.37k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, void*>::arg_pointers()
Line
Count
Source
5339
8.37k
    {
5340
8.37k
        return m_argptrs;
5341
8.37k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::arg_pointers()
Line
Count
Source
5339
270k
    {
5340
270k
        return m_argptrs;
5341
270k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::arg_pointers()
Line
Count
Source
5339
8.37k
    {
5340
8.37k
        return m_argptrs;
5341
8.37k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >::arg_pointers()
Line
Count
Source
5339
138k
    {
5340
138k
        return m_argptrs;
5341
138k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, wchar_t>::arg_pointers()
Line
Count
Source
5339
16.7k
    {
5340
16.7k
        return m_argptrs;
5341
16.7k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, int>::arg_pointers()
Line
Count
Source
5339
173k
    {
5340
173k
        return m_argptrs;
5341
173k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, unsigned int>::arg_pointers()
Line
Count
Source
5339
173k
    {
5340
173k
        return m_argptrs;
5341
173k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, double>::arg_pointers()
Line
Count
Source
5339
188k
    {
5340
188k
        return m_argptrs;
5341
188k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, bool>::arg_pointers()
Line
Count
Source
5339
16.7k
    {
5340
16.7k
        return m_argptrs;
5341
16.7k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, void*>::arg_pointers()
Line
Count
Source
5339
16.7k
    {
5340
16.7k
        return m_argptrs;
5341
16.7k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::arg_pointers()
Line
Count
Source
5339
16.7k
    {
5340
16.7k
        return m_argptrs;
5341
16.7k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::arg_pointers()
Line
Count
Source
5339
31.4M
    {
5340
31.4M
        return m_argptrs;
5341
31.4M
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::arg_pointers()
Line
Count
Source
5339
15.7M
    {
5340
15.7M
        return m_argptrs;
5341
15.7M
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, signed char>::arg_pointers()
Line
Count
Source
5339
624k
    {
5340
624k
        return m_argptrs;
5341
624k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, unsigned char>::arg_pointers()
Line
Count
Source
5339
603k
    {
5340
603k
        return m_argptrs;
5341
603k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, long long>::arg_pointers()
Line
Count
Source
5339
801k
    {
5340
801k
        return m_argptrs;
5341
801k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, unsigned long long>::arg_pointers()
Line
Count
Source
5339
688k
    {
5340
688k
        return m_argptrs;
5341
688k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, signed char>::arg_pointers()
Line
Count
Source
5339
156k
    {
5340
156k
        return m_argptrs;
5341
156k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, unsigned char>::arg_pointers()
Line
Count
Source
5339
156k
    {
5340
156k
        return m_argptrs;
5341
156k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, long long>::arg_pointers()
Line
Count
Source
5339
157k
    {
5340
157k
        return m_argptrs;
5341
157k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, unsigned long long>::arg_pointers()
Line
Count
Source
5339
156k
    {
5340
156k
        return m_argptrs;
5341
156k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, float>::arg_pointers()
Line
Count
Source
5339
1.34M
    {
5340
1.34M
        return m_argptrs;
5341
1.34M
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, long double>::arg_pointers()
Line
Count
Source
5339
1.47M
    {
5340
1.47M
        return m_argptrs;
5341
1.47M
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, float>::arg_pointers()
Line
Count
Source
5339
171k
    {
5340
171k
        return m_argptrs;
5341
171k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, long double>::arg_pointers()
Line
Count
Source
5339
172k
    {
5340
172k
        return m_argptrs;
5341
172k
    }
5342
5343
private:
5344
    std::tuple<Args...> m_args;
5345
    argptrs_type m_argptrs;
5346
};
5347
5348
}  // namespace detail
5349
5350
/**
5351
 * Constructs a `scan_arg_store` object, associated with `Context`,
5352
 * that contains value-initialized values of types `Args...`.
5353
 */
5354
template <typename Context = scan_context, typename... Args>
5355
constexpr auto make_scan_args()
5356
57.6M
{
5357
57.6M
    detail::check_scan_arg_types<Args...>();
5358
57.6M
    return detail::scan_arg_store<Context, Args...>{};
5359
57.6M
}
auto scn::v3::make_scan_args<scn::v3::basic_scan_context<char>, char>()
Line
Count
Source
5356
8.37k
{
5357
8.37k
    detail::check_scan_arg_types<Args...>();
5358
8.37k
    return detail::scan_arg_store<Context, Args...>{};
5359
8.37k
}
auto scn::v3::make_scan_args<scn::v3::basic_scan_context<char>, int>()
Line
Count
Source
5356
795k
{
5357
795k
    detail::check_scan_arg_types<Args...>();
5358
795k
    return detail::scan_arg_store<Context, Args...>{};
5359
795k
}
auto scn::v3::make_scan_args<scn::v3::basic_scan_context<char>, unsigned int>()
Line
Count
Source
5356
689k
{
5357
689k
    detail::check_scan_arg_types<Args...>();
5358
689k
    return detail::scan_arg_store<Context, Args...>{};
5359
689k
}
auto scn::v3::make_scan_args<scn::v3::basic_scan_context<char>, double>()
Line
Count
Source
5356
1.46M
{
5357
1.46M
    detail::check_scan_arg_types<Args...>();
5358
1.46M
    return detail::scan_arg_store<Context, Args...>{};
5359
1.46M
}
auto scn::v3::make_scan_args<scn::v3::basic_scan_context<char>, bool>()
Line
Count
Source
5356
8.37k
{
5357
8.37k
    detail::check_scan_arg_types<Args...>();
5358
8.37k
    return detail::scan_arg_store<Context, Args...>{};
5359
8.37k
}
auto scn::v3::make_scan_args<scn::v3::basic_scan_context<char>, void*>()
Line
Count
Source
5356
8.37k
{
5357
8.37k
    detail::check_scan_arg_types<Args...>();
5358
8.37k
    return detail::scan_arg_store<Context, Args...>{};
5359
8.37k
}
auto scn::v3::make_scan_args<scn::v3::basic_scan_context<char>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >()
Line
Count
Source
5356
270k
{
5357
270k
    detail::check_scan_arg_types<Args...>();
5358
270k
    return detail::scan_arg_store<Context, Args...>{};
5359
270k
}
auto scn::v3::make_scan_args<scn::v3::basic_scan_context<char>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >()
Line
Count
Source
5356
8.37k
{
5357
8.37k
    detail::check_scan_arg_types<Args...>();
5358
8.37k
    return detail::scan_arg_store<Context, Args...>{};
5359
8.37k
}
auto scn::v3::make_scan_args<scn::v3::basic_scan_context<char>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >()
Line
Count
Source
5356
138k
{
5357
138k
    detail::check_scan_arg_types<Args...>();
5358
138k
    return detail::scan_arg_store<Context, Args...>{};
5359
138k
}
auto scn::v3::make_scan_args<scn::v3::basic_scan_context<wchar_t>, wchar_t>()
Line
Count
Source
5356
16.7k
{
5357
16.7k
    detail::check_scan_arg_types<Args...>();
5358
16.7k
    return detail::scan_arg_store<Context, Args...>{};
5359
16.7k
}
auto scn::v3::make_scan_args<scn::v3::basic_scan_context<wchar_t>, int>()
Line
Count
Source
5356
173k
{
5357
173k
    detail::check_scan_arg_types<Args...>();
5358
173k
    return detail::scan_arg_store<Context, Args...>{};
5359
173k
}
auto scn::v3::make_scan_args<scn::v3::basic_scan_context<wchar_t>, unsigned int>()
Line
Count
Source
5356
173k
{
5357
173k
    detail::check_scan_arg_types<Args...>();
5358
173k
    return detail::scan_arg_store<Context, Args...>{};
5359
173k
}
auto scn::v3::make_scan_args<scn::v3::basic_scan_context<wchar_t>, double>()
Line
Count
Source
5356
188k
{
5357
188k
    detail::check_scan_arg_types<Args...>();
5358
188k
    return detail::scan_arg_store<Context, Args...>{};
5359
188k
}
auto scn::v3::make_scan_args<scn::v3::basic_scan_context<wchar_t>, bool>()
Line
Count
Source
5356
16.7k
{
5357
16.7k
    detail::check_scan_arg_types<Args...>();
5358
16.7k
    return detail::scan_arg_store<Context, Args...>{};
5359
16.7k
}
auto scn::v3::make_scan_args<scn::v3::basic_scan_context<wchar_t>, void*>()
Line
Count
Source
5356
16.7k
{
5357
16.7k
    detail::check_scan_arg_types<Args...>();
5358
16.7k
    return detail::scan_arg_store<Context, Args...>{};
5359
16.7k
}
auto scn::v3::make_scan_args<scn::v3::basic_scan_context<wchar_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >()
Line
Count
Source
5356
16.7k
{
5357
16.7k
    detail::check_scan_arg_types<Args...>();
5358
16.7k
    return detail::scan_arg_store<Context, Args...>{};
5359
16.7k
}
auto scn::v3::make_scan_args<scn::v3::basic_scan_context<wchar_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >()
Line
Count
Source
5356
31.4M
{
5357
31.4M
    detail::check_scan_arg_types<Args...>();
5358
31.4M
    return detail::scan_arg_store<Context, Args...>{};
5359
31.4M
}
auto scn::v3::make_scan_args<scn::v3::basic_scan_context<wchar_t>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >()
Line
Count
Source
5356
15.7M
{
5357
15.7M
    detail::check_scan_arg_types<Args...>();
5358
15.7M
    return detail::scan_arg_store<Context, Args...>{};
5359
15.7M
}
auto scn::v3::make_scan_args<scn::v3::basic_scan_context<char>, signed char>()
Line
Count
Source
5356
624k
{
5357
624k
    detail::check_scan_arg_types<Args...>();
5358
624k
    return detail::scan_arg_store<Context, Args...>{};
5359
624k
}
auto scn::v3::make_scan_args<scn::v3::basic_scan_context<char>, unsigned char>()
Line
Count
Source
5356
603k
{
5357
603k
    detail::check_scan_arg_types<Args...>();
5358
603k
    return detail::scan_arg_store<Context, Args...>{};
5359
603k
}
auto scn::v3::make_scan_args<scn::v3::basic_scan_context<char>, long long>()
Line
Count
Source
5356
801k
{
5357
801k
    detail::check_scan_arg_types<Args...>();
5358
801k
    return detail::scan_arg_store<Context, Args...>{};
5359
801k
}
auto scn::v3::make_scan_args<scn::v3::basic_scan_context<char>, unsigned long long>()
Line
Count
Source
5356
688k
{
5357
688k
    detail::check_scan_arg_types<Args...>();
5358
688k
    return detail::scan_arg_store<Context, Args...>{};
5359
688k
}
auto scn::v3::make_scan_args<scn::v3::basic_scan_context<wchar_t>, signed char>()
Line
Count
Source
5356
156k
{
5357
156k
    detail::check_scan_arg_types<Args...>();
5358
156k
    return detail::scan_arg_store<Context, Args...>{};
5359
156k
}
auto scn::v3::make_scan_args<scn::v3::basic_scan_context<wchar_t>, unsigned char>()
Line
Count
Source
5356
156k
{
5357
156k
    detail::check_scan_arg_types<Args...>();
5358
156k
    return detail::scan_arg_store<Context, Args...>{};
5359
156k
}
auto scn::v3::make_scan_args<scn::v3::basic_scan_context<wchar_t>, long long>()
Line
Count
Source
5356
157k
{
5357
157k
    detail::check_scan_arg_types<Args...>();
5358
157k
    return detail::scan_arg_store<Context, Args...>{};
5359
157k
}
auto scn::v3::make_scan_args<scn::v3::basic_scan_context<wchar_t>, unsigned long long>()
Line
Count
Source
5356
156k
{
5357
156k
    detail::check_scan_arg_types<Args...>();
5358
156k
    return detail::scan_arg_store<Context, Args...>{};
5359
156k
}
auto scn::v3::make_scan_args<scn::v3::basic_scan_context<char>, float>()
Line
Count
Source
5356
1.34M
{
5357
1.34M
    detail::check_scan_arg_types<Args...>();
5358
1.34M
    return detail::scan_arg_store<Context, Args...>{};
5359
1.34M
}
auto scn::v3::make_scan_args<scn::v3::basic_scan_context<char>, long double>()
Line
Count
Source
5356
1.47M
{
5357
1.47M
    detail::check_scan_arg_types<Args...>();
5358
1.47M
    return detail::scan_arg_store<Context, Args...>{};
5359
1.47M
}
auto scn::v3::make_scan_args<scn::v3::basic_scan_context<wchar_t>, float>()
Line
Count
Source
5356
171k
{
5357
171k
    detail::check_scan_arg_types<Args...>();
5358
171k
    return detail::scan_arg_store<Context, Args...>{};
5359
171k
}
auto scn::v3::make_scan_args<scn::v3::basic_scan_context<wchar_t>, long double>()
Line
Count
Source
5356
172k
{
5357
172k
    detail::check_scan_arg_types<Args...>();
5358
172k
    return detail::scan_arg_store<Context, Args...>{};
5359
172k
}
5360
/**
5361
 * Constructs a `scan_arg_store` object, associated with `Context`,
5362
 * that contains `values`.
5363
 */
5364
template <typename Context = scan_context, typename... Args>
5365
constexpr auto make_scan_args(std::tuple<Args...>&& values)
5366
{
5367
    detail::check_scan_arg_types<Args...>();
5368
    return detail::scan_arg_store<Context, Args...>{SCN_MOVE(values)};
5369
}
5370
5371
/**
5372
 * A view over a collection of scanning arguments (`scan_arg_store`).
5373
 *
5374
 * Passed to `scn::vscan`, where it's automatically constructed from a
5375
 * `scan_arg_store`.
5376
 */
5377
template <typename Context>
5378
class basic_scan_args {
5379
public:
5380
12.7M
    constexpr basic_scan_args() = default;
scn::v3::basic_scan_args<scn::v3::basic_scan_context<char> >::basic_scan_args()
Line
Count
Source
5380
879k
    constexpr basic_scan_args() = default;
scn::v3::basic_scan_args<scn::v3::basic_scan_context<wchar_t> >::basic_scan_args()
Line
Count
Source
5380
11.8M
    constexpr basic_scan_args() = default;
5381
5382
    template <typename... Args>
5383
    SCN_IMPLICIT constexpr basic_scan_args(
5384
        detail::scan_arg_store<Context, Args...>& store)
5385
        : basic_scan_args(store.desc, store.arg_pointers().data())
5386
57.6M
    {
5387
57.6M
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<char> >::basic_scan_args<char>(scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, char>&)
Line
Count
Source
5386
8.37k
    {
5387
8.37k
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<char> >::basic_scan_args<int>(scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, int>&)
Line
Count
Source
5386
795k
    {
5387
795k
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<char> >::basic_scan_args<unsigned int>(scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, unsigned int>&)
Line
Count
Source
5386
689k
    {
5387
689k
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<char> >::basic_scan_args<double>(scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, double>&)
Line
Count
Source
5386
1.46M
    {
5387
1.46M
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<char> >::basic_scan_args<bool>(scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, bool>&)
Line
Count
Source
5386
8.37k
    {
5387
8.37k
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<char> >::basic_scan_args<void*>(scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, void*>&)
Line
Count
Source
5386
8.37k
    {
5387
8.37k
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<char> >::basic_scan_args<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&)
Line
Count
Source
5386
270k
    {
5387
270k
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<char> >::basic_scan_args<std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >(scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&)
Line
Count
Source
5386
8.37k
    {
5387
8.37k
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<char> >::basic_scan_args<std::__1::basic_string_view<char, std::__1::char_traits<char> > >(scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >&)
Line
Count
Source
5386
138k
    {
5387
138k
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<wchar_t> >::basic_scan_args<wchar_t>(scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, wchar_t>&)
Line
Count
Source
5386
16.7k
    {
5387
16.7k
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<wchar_t> >::basic_scan_args<int>(scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, int>&)
Line
Count
Source
5386
173k
    {
5387
173k
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<wchar_t> >::basic_scan_args<unsigned int>(scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, unsigned int>&)
Line
Count
Source
5386
173k
    {
5387
173k
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<wchar_t> >::basic_scan_args<double>(scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, double>&)
Line
Count
Source
5386
188k
    {
5387
188k
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<wchar_t> >::basic_scan_args<bool>(scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, bool>&)
Line
Count
Source
5386
16.7k
    {
5387
16.7k
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<wchar_t> >::basic_scan_args<void*>(scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, void*>&)
Line
Count
Source
5386
16.7k
    {
5387
16.7k
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<wchar_t> >::basic_scan_args<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&)
Line
Count
Source
5386
16.7k
    {
5387
16.7k
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<wchar_t> >::basic_scan_args<std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >(scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&)
Line
Count
Source
5386
31.4M
    {
5387
31.4M
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<wchar_t> >::basic_scan_args<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >(scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >&)
Line
Count
Source
5386
15.7M
    {
5387
15.7M
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<char> >::basic_scan_args<signed char>(scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, signed char>&)
Line
Count
Source
5386
624k
    {
5387
624k
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<char> >::basic_scan_args<unsigned char>(scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, unsigned char>&)
Line
Count
Source
5386
603k
    {
5387
603k
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<char> >::basic_scan_args<long long>(scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, long long>&)
Line
Count
Source
5386
801k
    {
5387
801k
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<char> >::basic_scan_args<unsigned long long>(scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, unsigned long long>&)
Line
Count
Source
5386
688k
    {
5387
688k
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<wchar_t> >::basic_scan_args<signed char>(scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, signed char>&)
Line
Count
Source
5386
156k
    {
5387
156k
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<wchar_t> >::basic_scan_args<unsigned char>(scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, unsigned char>&)
Line
Count
Source
5386
156k
    {
5387
156k
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<wchar_t> >::basic_scan_args<long long>(scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, long long>&)
Line
Count
Source
5386
157k
    {
5387
157k
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<wchar_t> >::basic_scan_args<unsigned long long>(scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, unsigned long long>&)
Line
Count
Source
5386
156k
    {
5387
156k
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<char> >::basic_scan_args<float>(scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, float>&)
Line
Count
Source
5386
1.34M
    {
5387
1.34M
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<char> >::basic_scan_args<long double>(scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, long double>&)
Line
Count
Source
5386
1.47M
    {
5387
1.47M
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<wchar_t> >::basic_scan_args<float>(scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, float>&)
Line
Count
Source
5386
171k
    {
5387
171k
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<wchar_t> >::basic_scan_args<long double>(scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, long double>&)
Line
Count
Source
5386
172k
    {
5387
172k
    }
5388
5389
    /**
5390
     * \return `basic_scan_arg` at index `id`. Empty `basic_scan_arg` if
5391
     * there's no argument at index `id`.
5392
     */
5393
    SCN_NODISCARD constexpr basic_scan_arg<Context> get(std::size_t id) const
5394
57.5M
    {
5395
57.5M
        if (SCN_UNLIKELY(!is_packed())) {
5396
0
            if (SCN_LIKELY(id < max_size())) {
5397
0
                return m_args[id];
5398
0
            }
5399
0
            return {};
5400
0
        }
5401
5402
57.5M
        if (SCN_UNLIKELY(id >= detail::max_packed_args)) {
5403
214
            return {};
5404
214
        }
5405
5406
57.5M
        const auto t = type(id);
5407
57.5M
        if (SCN_UNLIKELY(t == detail::arg_type::none_type)) {
5408
2.87k
            return {};
5409
2.87k
        }
5410
5411
57.5M
        basic_scan_arg<Context> arg;
5412
57.5M
        arg.m_type = t;
5413
57.5M
        if (is_only_builtin()) {
5414
57.5M
            arg.m_value.ref_value = m_builtin_values[id];
5415
57.5M
        }
5416
0
        else {
5417
0
            arg.m_value = m_values[id];
5418
0
        }
5419
57.5M
        return arg;
5420
57.5M
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<char> >::get(unsigned long) const
Line
Count
Source
5394
8.91M
    {
5395
8.91M
        if (SCN_UNLIKELY(!is_packed())) {
5396
0
            if (SCN_LIKELY(id < max_size())) {
5397
0
                return m_args[id];
5398
0
            }
5399
0
            return {};
5400
0
        }
5401
5402
8.91M
        if (SCN_UNLIKELY(id >= detail::max_packed_args)) {
5403
86
            return {};
5404
86
        }
5405
5406
8.91M
        const auto t = type(id);
5407
8.91M
        if (SCN_UNLIKELY(t == detail::arg_type::none_type)) {
5408
1.48k
            return {};
5409
1.48k
        }
5410
5411
8.91M
        basic_scan_arg<Context> arg;
5412
8.91M
        arg.m_type = t;
5413
8.91M
        if (is_only_builtin()) {
5414
8.91M
            arg.m_value.ref_value = m_builtin_values[id];
5415
8.91M
        }
5416
0
        else {
5417
0
            arg.m_value = m_values[id];
5418
0
        }
5419
8.91M
        return arg;
5420
8.91M
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<wchar_t> >::get(unsigned long) const
Line
Count
Source
5394
48.6M
    {
5395
48.6M
        if (SCN_UNLIKELY(!is_packed())) {
5396
0
            if (SCN_LIKELY(id < max_size())) {
5397
0
                return m_args[id];
5398
0
            }
5399
0
            return {};
5400
0
        }
5401
5402
48.6M
        if (SCN_UNLIKELY(id >= detail::max_packed_args)) {
5403
128
            return {};
5404
128
        }
5405
5406
48.6M
        const auto t = type(id);
5407
48.6M
        if (SCN_UNLIKELY(t == detail::arg_type::none_type)) {
5408
1.39k
            return {};
5409
1.39k
        }
5410
5411
48.6M
        basic_scan_arg<Context> arg;
5412
48.6M
        arg.m_type = t;
5413
48.6M
        if (is_only_builtin()) {
5414
48.6M
            arg.m_value.ref_value = m_builtin_values[id];
5415
48.6M
        }
5416
0
        else {
5417
0
            arg.m_value = m_values[id];
5418
0
        }
5419
48.6M
        return arg;
5420
48.6M
    }
5421
5422
    /**
5423
     * \return Number of arguments in `*this`.
5424
     */
5425
    SCN_NODISCARD constexpr std::size_t size() const
5426
57.6M
    {
5427
57.6M
        if (SCN_UNLIKELY(!is_packed())) {
5428
0
            return max_size();
5429
0
        }
5430
5431
57.6M
        return static_cast<std::size_t>(m_desc &
5432
57.6M
                                        ((1 << detail::packed_arg_bits) - 1));
5433
57.6M
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<char> >::size() const
Line
Count
Source
5426
8.93M
    {
5427
8.93M
        if (SCN_UNLIKELY(!is_packed())) {
5428
0
            return max_size();
5429
0
        }
5430
5431
8.93M
        return static_cast<std::size_t>(m_desc &
5432
8.93M
                                        ((1 << detail::packed_arg_bits) - 1));
5433
8.93M
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<wchar_t> >::size() const
Line
Count
Source
5426
48.7M
    {
5427
48.7M
        if (SCN_UNLIKELY(!is_packed())) {
5428
0
            return max_size();
5429
0
        }
5430
5431
48.7M
        return static_cast<std::size_t>(m_desc &
5432
48.7M
                                        ((1 << detail::packed_arg_bits) - 1));
5433
48.7M
    }
5434
5435
private:
5436
    constexpr explicit basic_scan_args(size_t desc, void** data)
5437
        : m_desc(desc), m_builtin_values(data)
5438
57.6M
    {
5439
57.6M
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<char> >::basic_scan_args(unsigned long, void**)
Line
Count
Source
5438
8.93M
    {
5439
8.93M
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<wchar_t> >::basic_scan_args(unsigned long, void**)
Line
Count
Source
5438
48.7M
    {
5439
48.7M
    }
5440
    constexpr explicit basic_scan_args(size_t desc, detail::arg_value* data)
5441
        : m_desc(desc), m_values(data)
5442
    {
5443
    }
5444
    constexpr explicit basic_scan_args(size_t desc,
5445
                                       basic_scan_arg<Context>* data)
5446
        : m_desc(desc), m_args(data)
5447
    {
5448
    }
5449
5450
    SCN_NODISCARD constexpr bool is_packed() const
5451
115M
    {
5452
115M
        return (m_desc & detail::is_unpacked_bit) == 0;
5453
115M
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<char> >::is_packed() const
Line
Count
Source
5451
17.8M
    {
5452
17.8M
        return (m_desc & detail::is_unpacked_bit) == 0;
5453
17.8M
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<wchar_t> >::is_packed() const
Line
Count
Source
5451
97.3M
    {
5452
97.3M
        return (m_desc & detail::is_unpacked_bit) == 0;
5453
97.3M
    }
5454
    SCN_NODISCARD constexpr bool is_only_builtin() const
5455
57.5M
    {
5456
57.5M
        return (m_desc & detail::has_custom_types_bit) == 0;
5457
57.5M
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<char> >::is_only_builtin() const
Line
Count
Source
5455
8.91M
    {
5456
8.91M
        return (m_desc & detail::has_custom_types_bit) == 0;
5457
8.91M
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<wchar_t> >::is_only_builtin() const
Line
Count
Source
5455
48.6M
    {
5456
48.6M
        return (m_desc & detail::has_custom_types_bit) == 0;
5457
48.6M
    }
5458
5459
    SCN_NODISCARD constexpr detail::arg_type type(std::size_t index) const
5460
57.5M
    {
5461
        // First (0th) index is size, types start after that
5462
57.5M
        const auto shift = (index + 1) * detail::packed_arg_bits;
5463
57.5M
        const std::size_t mask = (1 << detail::packed_arg_bits) - 1;
5464
57.5M
        return static_cast<detail::arg_type>((m_desc >> shift) & mask);
5465
57.5M
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<char> >::type(unsigned long) const
Line
Count
Source
5460
8.91M
    {
5461
        // First (0th) index is size, types start after that
5462
8.91M
        const auto shift = (index + 1) * detail::packed_arg_bits;
5463
8.91M
        const std::size_t mask = (1 << detail::packed_arg_bits) - 1;
5464
8.91M
        return static_cast<detail::arg_type>((m_desc >> shift) & mask);
5465
8.91M
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<wchar_t> >::type(unsigned long) const
Line
Count
Source
5460
48.6M
    {
5461
        // First (0th) index is size, types start after that
5462
48.6M
        const auto shift = (index + 1) * detail::packed_arg_bits;
5463
48.6M
        const std::size_t mask = (1 << detail::packed_arg_bits) - 1;
5464
48.6M
        return static_cast<detail::arg_type>((m_desc >> shift) & mask);
5465
48.6M
    }
5466
5467
    SCN_NODISCARD constexpr std::size_t max_size() const
5468
0
    {
5469
0
        return SCN_LIKELY(is_packed()) ? detail::max_packed_args
5470
0
                                       : (m_desc & ~detail::is_unpacked_bit &
5471
0
                                          ~detail::has_custom_types_bit);
5472
0
    }
Unexecuted instantiation: scn::v3::basic_scan_args<scn::v3::basic_scan_context<char> >::max_size() const
Unexecuted instantiation: scn::v3::basic_scan_args<scn::v3::basic_scan_context<wchar_t> >::max_size() const
5473
5474
    size_t m_desc{0};
5475
    union {
5476
        void** m_builtin_values;
5477
        detail::arg_value* m_values;
5478
        basic_scan_arg<Context>* m_args{nullptr};
5479
    };
5480
};
5481
5482
/////////////////////////////////////////////////////////////////
5483
// scan_parse_context
5484
/////////////////////////////////////////////////////////////////
5485
5486
/**
5487
 * Format string parsing context, wrapping the format string being parsed,
5488
 * and a counter for argument indexing.
5489
 *
5490
 * \ingroup ctx
5491
 */
5492
template <typename CharT>
5493
class basic_scan_parse_context {
5494
public:
5495
    using char_type = CharT;
5496
    using iterator = typename std::basic_string_view<CharT>::const_pointer;
5497
5498
    /**
5499
     * Construct a `basic_scan_parse_context` over a format string `format`.
5500
     */
5501
    explicit constexpr basic_scan_parse_context(
5502
        std::basic_string_view<CharT> format,
5503
        int next_arg_id = 0)
5504
        : m_format{format}, m_next_arg_id{next_arg_id}
5505
32.1M
    {
5506
32.1M
    }
scn::v3::basic_scan_parse_context<char>::basic_scan_parse_context(std::__1::basic_string_view<char, std::__1::char_traits<char> >, int)
Line
Count
Source
5505
7.17M
    {
5506
7.17M
    }
scn::v3::basic_scan_parse_context<wchar_t>::basic_scan_parse_context(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >, int)
Line
Count
Source
5505
24.9M
    {
5506
24.9M
    }
5507
5508
    /// Returns an iterator pointing to the beginning of the format string
5509
    constexpr auto begin() const noexcept
5510
63.5M
    {
5511
63.5M
        return m_format.data();
5512
63.5M
    }
scn::v3::basic_scan_parse_context<char>::begin() const
Line
Count
Source
5510
14.1M
    {
5511
14.1M
        return m_format.data();
5512
14.1M
    }
scn::v3::basic_scan_parse_context<wchar_t>::begin() const
Line
Count
Source
5510
49.3M
    {
5511
49.3M
        return m_format.data();
5512
49.3M
    }
5513
    /// Returns an iterator pointing to the end of the format string
5514
    constexpr auto end() const noexcept
5515
    {
5516
        return m_format.data() + m_format.size();
5517
    }
5518
5519
    /// Advance the beginning of the format string to `it`
5520
    constexpr void advance_to(iterator it)
5521
31.5M
    {
5522
31.5M
        m_format.remove_prefix(static_cast<std::size_t>(it - begin()));
5523
31.5M
    }
scn::v3::basic_scan_parse_context<char>::advance_to(char const*)
Line
Count
Source
5521
7.00M
    {
5522
7.00M
        m_format.remove_prefix(static_cast<std::size_t>(it - begin()));
5523
7.00M
    }
scn::v3::basic_scan_parse_context<wchar_t>::advance_to(wchar_t const*)
Line
Count
Source
5521
24.5M
    {
5522
24.5M
        m_format.remove_prefix(static_cast<std::size_t>(it - begin()));
5523
24.5M
    }
5524
5525
    constexpr size_t next_arg_id()
5526
32.0M
    {
5527
32.0M
        if (SCN_UNLIKELY(m_next_arg_id < 0)) {
5528
42
            on_error(
5529
42
                "Cannot switch from manual to automatic argument indexing");
5530
42
            return 0;
5531
42
        }
5532
5533
32.0M
        auto id = static_cast<size_t>(m_next_arg_id++);
5534
32.0M
        do_check_arg_id(id);
5535
32.0M
        return id;
5536
32.0M
    }
scn::v3::basic_scan_parse_context<char>::next_arg_id()
Line
Count
Source
5526
7.15M
    {
5527
7.15M
        if (SCN_UNLIKELY(m_next_arg_id < 0)) {
5528
42
            on_error(
5529
42
                "Cannot switch from manual to automatic argument indexing");
5530
42
            return 0;
5531
42
        }
5532
5533
7.15M
        auto id = static_cast<size_t>(m_next_arg_id++);
5534
7.15M
        do_check_arg_id(id);
5535
7.15M
        return id;
5536
7.15M
    }
scn::v3::basic_scan_parse_context<wchar_t>::next_arg_id()
Line
Count
Source
5526
24.9M
    {
5527
24.9M
        if (SCN_UNLIKELY(m_next_arg_id < 0)) {
5528
0
            on_error(
5529
0
                "Cannot switch from manual to automatic argument indexing");
5530
0
            return 0;
5531
0
        }
5532
5533
24.9M
        auto id = static_cast<size_t>(m_next_arg_id++);
5534
24.9M
        do_check_arg_id(id);
5535
24.9M
        return id;
5536
24.9M
    }
5537
5538
    constexpr void check_arg_id(std::size_t id)
5539
3.77k
    {
5540
3.77k
        if (SCN_UNLIKELY(m_next_arg_id > 0)) {
5541
214
            on_error(
5542
214
                "Cannot switch from manual to automatic argument indexing");
5543
214
            return;
5544
214
        }
5545
3.56k
        m_next_arg_id = -1;
5546
3.56k
        do_check_arg_id(id);
5547
3.56k
    }
scn::v3::basic_scan_parse_context<char>::check_arg_id(unsigned long)
Line
Count
Source
5539
3.50k
    {
5540
3.50k
        if (SCN_UNLIKELY(m_next_arg_id > 0)) {
5541
70
            on_error(
5542
70
                "Cannot switch from manual to automatic argument indexing");
5543
70
            return;
5544
70
        }
5545
3.43k
        m_next_arg_id = -1;
5546
3.43k
        do_check_arg_id(id);
5547
3.43k
    }
scn::v3::basic_scan_parse_context<wchar_t>::check_arg_id(unsigned long)
Line
Count
Source
5539
270
    {
5540
270
        if (SCN_UNLIKELY(m_next_arg_id > 0)) {
5541
144
            on_error(
5542
144
                "Cannot switch from manual to automatic argument indexing");
5543
144
            return;
5544
144
        }
5545
126
        m_next_arg_id = -1;
5546
126
        do_check_arg_id(id);
5547
126
    }
5548
5549
    constexpr scan_error on_error(const char* msg) const
5550
256
    {
5551
256
        return detail::handle_error(
5552
256
            scan_error{scan_error::invalid_format_string, msg});
5553
256
    }
scn::v3::basic_scan_parse_context<char>::on_error(char const*) const
Line
Count
Source
5550
112
    {
5551
112
        return detail::handle_error(
5552
112
            scan_error{scan_error::invalid_format_string, msg});
5553
112
    }
scn::v3::basic_scan_parse_context<wchar_t>::on_error(char const*) const
Line
Count
Source
5550
144
    {
5551
144
        return detail::handle_error(
5552
144
            scan_error{scan_error::invalid_format_string, msg});
5553
144
    }
5554
5555
protected:
5556
    constexpr void do_check_arg_id(size_t id);
5557
5558
    std::basic_string_view<CharT> m_format;
5559
    int m_next_arg_id{0};
5560
};
5561
5562
/////////////////////////////////////////////////////////////////
5563
// Result types
5564
/////////////////////////////////////////////////////////////////
5565
5566
namespace detail {
5567
template <typename... Args>
5568
struct scan_result_value_storage {
5569
public:
5570
    using tuple_type = std::tuple<Args...>;
5571
5572
    constexpr scan_result_value_storage() = default;
5573
5574
    constexpr scan_result_value_storage(tuple_type&& values)
5575
        : m_values(SCN_MOVE(values))
5576
67.8M
    {
5577
67.8M
    }
scn::v3::detail::scan_result_value_storage<char>::scan_result_value_storage(std::__1::tuple<char>&&)
Line
Count
Source
5576
146
    {
5577
146
    }
scn::v3::detail::scan_result_value_storage<int>::scan_result_value_storage(std::__1::tuple<int>&&)
Line
Count
Source
5576
767k
    {
5577
767k
    }
scn::v3::detail::scan_result_value_storage<unsigned int>::scan_result_value_storage(std::__1::tuple<unsigned int>&&)
Line
Count
Source
5576
652k
    {
5577
652k
    }
scn::v3::detail::scan_result_value_storage<double>::scan_result_value_storage(std::__1::tuple<double>&&)
Line
Count
Source
5576
1.56M
    {
5577
1.56M
    }
Unexecuted instantiation: scn::v3::detail::scan_result_value_storage<bool>::scan_result_value_storage(std::__1::tuple<bool>&&)
Unexecuted instantiation: scn::v3::detail::scan_result_value_storage<void*>::scan_result_value_storage(std::__1::tuple<void*>&&)
scn::v3::detail::scan_result_value_storage<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::scan_result_value_storage(std::__1::tuple<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
5576
304k
    {
5577
304k
    }
scn::v3::detail::scan_result_value_storage<std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::scan_result_value_storage(std::__1::tuple<std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&&)
Line
Count
Source
5576
39.2M
    {
5577
39.2M
    }
scn::v3::detail::scan_result_value_storage<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::scan_result_value_storage(std::__1::tuple<std::__1::basic_string_view<char, std::__1::char_traits<char> > >&&)
Line
Count
Source
5576
151k
    {
5577
151k
    }
scn::v3::detail::scan_result_value_storage<wchar_t>::scan_result_value_storage(std::__1::tuple<wchar_t>&&)
Line
Count
Source
5576
60
    {
5577
60
    }
scn::v3::detail::scan_result_value_storage<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::scan_result_value_storage(std::__1::tuple<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >&&)
Line
Count
Source
5576
19.6M
    {
5577
19.6M
    }
scn::v3::detail::scan_result_value_storage<signed char>::scan_result_value_storage(std::__1::tuple<signed char>&&)
Line
Count
Source
5576
596k
    {
5577
596k
    }
scn::v3::detail::scan_result_value_storage<unsigned char>::scan_result_value_storage(std::__1::tuple<unsigned char>&&)
Line
Count
Source
5576
569k
    {
5577
569k
    }
scn::v3::detail::scan_result_value_storage<long long>::scan_result_value_storage(std::__1::tuple<long long>&&)
Line
Count
Source
5576
783k
    {
5577
783k
    }
scn::v3::detail::scan_result_value_storage<unsigned long long>::scan_result_value_storage(std::__1::tuple<unsigned long long>&&)
Line
Count
Source
5576
660k
    {
5577
660k
    }
scn::v3::detail::scan_result_value_storage<float>::scan_result_value_storage(std::__1::tuple<float>&&)
Line
Count
Source
5576
1.44M
    {
5577
1.44M
    }
scn::v3::detail::scan_result_value_storage<long double>::scan_result_value_storage(std::__1::tuple<long double>&&)
Line
Count
Source
5576
1.58M
    {
5577
1.58M
    }
5578
5579
    /// Access the scanned values
5580
    tuple_type& values() &
5581
    {
5582
        return m_values;
5583
    }
5584
    /// Access the scanned values
5585
    const tuple_type& values() const&
5586
    {
5587
        return m_values;
5588
    }
5589
    /// Access the scanned values
5590
    tuple_type&& values() &&
5591
    {
5592
        return SCN_MOVE(m_values);
5593
    }
5594
    /// Access the scanned values
5595
    const tuple_type&& values() const&&
5596
    {
5597
        return SCN_MOVE(m_values);
5598
    }
5599
5600
    /// Access the single scanned value
5601
    template <size_t N = sizeof...(Args), std::enable_if_t<N == 1>* = nullptr>
5602
    decltype(auto) value() &
5603
    {
5604
        return std::get<0>(m_values);
5605
    }
5606
    /// Access the single scanned value
5607
    template <size_t N = sizeof...(Args), std::enable_if_t<N == 1>* = nullptr>
5608
    decltype(auto) value() const&
5609
    {
5610
        return std::get<0>(m_values);
5611
    }
5612
    /// Access the single scanned value
5613
    template <size_t N = sizeof...(Args), std::enable_if_t<N == 1>* = nullptr>
5614
    decltype(auto) value() &&
5615
    {
5616
        return SCN_MOVE(std::get<0>(m_values));
5617
    }
5618
    /// Access the single scanned value
5619
    template <size_t N = sizeof...(Args), std::enable_if_t<N == 1>* = nullptr>
5620
    decltype(auto) value() const&&
5621
    {
5622
        return SCN_MOVE(std::get<0>(m_values));
5623
    }
5624
5625
private:
5626
    SCN_NO_UNIQUE_ADDRESS tuple_type m_values{};
5627
};
5628
5629
struct scan_result_convert_tag {};
5630
5631
template <typename Range>
5632
struct scan_result_range_storage {
5633
public:
5634
    using range_type = Range;
5635
    using iterator = ranges::iterator_t<Range>;
5636
    using sentinel = ranges::sentinel_t<Range>;
5637
5638
    constexpr scan_result_range_storage() = default;
5639
5640
    constexpr scan_result_range_storage(range_type&& r) : m_range(SCN_MOVE(r))
5641
67.8M
    {
5642
67.8M
    }
scn::v3::detail::scan_result_range_storage<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >::scan_result_range_storage(scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>&&)
Line
Count
Source
5641
4.56M
    {
5642
4.56M
    }
scn::v3::detail::scan_result_range_storage<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::scan_result_range_storage(scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>&&)
Line
Count
Source
5641
39.2M
    {
5642
39.2M
    }
scn::v3::detail::scan_result_range_storage<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > >::scan_result_range_storage(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >&&)
Line
Count
Source
5641
4.41M
    {
5642
4.41M
    }
scn::v3::detail::scan_result_range_storage<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > >::scan_result_range_storage(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >&&)
Line
Count
Source
5641
19.6M
    {
5642
19.6M
    }
5643
5644
    template <typename R>
5645
    explicit constexpr scan_result_range_storage(scan_result_convert_tag, R&& r)
5646
        : m_range(SCN_MOVE(r))
5647
    {
5648
    }
5649
5650
    /// Access the ununsed source range
5651
    range_type range() const
5652
    {
5653
        return m_range;
5654
    }
5655
5656
    /// The beginning of the unused source range
5657
    auto begin() const
5658
67.8M
    {
5659
67.8M
        return ranges::begin(m_range);
5660
67.8M
    }
scn::v3::detail::scan_result_range_storage<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >::begin() const
Line
Count
Source
5658
4.56M
    {
5659
4.56M
        return ranges::begin(m_range);
5660
4.56M
    }
scn::v3::detail::scan_result_range_storage<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > >::begin() const
Line
Count
Source
5658
4.41M
    {
5659
4.41M
        return ranges::begin(m_range);
5660
4.41M
    }
scn::v3::detail::scan_result_range_storage<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::begin() const
Line
Count
Source
5658
39.2M
    {
5659
39.2M
        return ranges::begin(m_range);
5660
39.2M
    }
scn::v3::detail::scan_result_range_storage<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > >::begin() const
Line
Count
Source
5658
19.6M
    {
5659
19.6M
        return ranges::begin(m_range);
5660
19.6M
    }
5661
    /// The end of the unused source range
5662
    auto end() const
5663
0
    {
5664
0
        return ranges::end(m_range);
5665
0
    }
Unexecuted instantiation: scn::v3::detail::scan_result_range_storage<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >::end() const
Unexecuted instantiation: scn::v3::detail::scan_result_range_storage<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::end() const
Unexecuted instantiation: scn::v3::detail::scan_result_range_storage<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > >::end() const
Unexecuted instantiation: scn::v3::detail::scan_result_range_storage<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > >::end() const
5666
5667
protected:
5668
    template <typename Other>
5669
    void assign_range(Other&& r)
5670
    {
5671
        m_range = r.m_range;
5672
    }
5673
5674
private:
5675
    SCN_NO_UNIQUE_ADDRESS range_type m_range{};
5676
};
5677
5678
struct scan_result_file_storage {
5679
public:
5680
    using range_type = std::FILE*;
5681
5682
    constexpr scan_result_file_storage() = default;
5683
5684
0
    constexpr scan_result_file_storage(std::FILE* f) : m_file(f) {}
5685
5686
    /// File used for scanning
5687
    std::FILE* file() const
5688
0
    {
5689
0
        return m_file;
5690
0
    }
5691
5692
protected:
5693
    void assign_range(const scan_result_file_storage& f)
5694
0
    {
5695
0
        m_file = f.m_file;
5696
0
    }
5697
5698
private:
5699
    std::FILE* m_file{nullptr};
5700
};
5701
5702
struct scan_result_dangling {
5703
    using range_type = ranges::dangling;
5704
5705
    constexpr scan_result_dangling() = default;
5706
5707
    template <typename... Args>
5708
    explicit constexpr scan_result_dangling(Args&&...)
5709
    {
5710
    }
5711
5712
    range_type range() const
5713
0
    {
5714
0
        return {};
5715
0
    }
5716
5717
    ranges::dangling begin() const
5718
0
    {
5719
0
        return {};
5720
0
    }
5721
    ranges::dangling end() const
5722
0
    {
5723
0
        return {};
5724
0
    }
5725
5726
protected:
5727
    template <typename... Args>
5728
    void assign_range(Args&&...)
5729
    {
5730
    }
5731
};
5732
5733
template <typename Range>
5734
constexpr auto get_scan_result_base()
5735
0
{
5736
0
    if constexpr (std::is_same_v<remove_cvref_t<Range>, ranges::dangling>) {
5737
0
        return type_identity<scan_result_dangling>{};
5738
0
    }
5739
0
    else if constexpr (std::is_same_v<remove_cvref_t<Range>, std::FILE*>) {
5740
0
        return type_identity<scan_result_file_storage>{};
5741
0
    }
5742
0
    else {
5743
0
        return type_identity<scan_result_range_storage<Range>>{};
5744
0
    }
5745
0
}
Unexecuted instantiation: auto scn::v3::detail::get_scan_result_base<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >()
Unexecuted instantiation: auto scn::v3::detail::get_scan_result_base<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >()
Unexecuted instantiation: auto scn::v3::detail::get_scan_result_base<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > >()
Unexecuted instantiation: auto scn::v3::detail::get_scan_result_base<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > >()
5746
5747
#if !SCN_DOXYGEN
5748
template <typename Range>
5749
using scan_result_base = typename decltype(get_scan_result_base<Range>())::type;
5750
#else
5751
template <typename Range>
5752
using scan_result_base = scan_result_range_storage<Range>;
5753
#endif
5754
}  // namespace detail
5755
5756
/**
5757
 * \defgroup result Result types
5758
 *
5759
 * \brief Result and error types
5760
 *
5761
 * Instead of using exceptions, `scn::scan` and others return an object of
5762
 * type `scn::scan_result`, wrapped inside a `scn::scan_expected`.
5763
 */
5764
5765
/**
5766
 * Type returned by `scan`, contains the unused input as a subrange, and the
5767
 * scanned values in a tuple.
5768
 */
5769
template <typename Range, typename... Args>
5770
class scan_result : public detail::scan_result_base<Range>,
5771
                    public detail::scan_result_value_storage<Args...> {
5772
    using range_base = detail::scan_result_base<Range>;
5773
    using value_base = detail::scan_result_value_storage<Args...>;
5774
5775
public:
5776
    using range_type = typename range_base::range_type;
5777
    using tuple_type = typename value_base::tuple_type;
5778
5779
    constexpr scan_result() = default;
5780
5781
    constexpr scan_result(const scan_result&) = default;
5782
39.5M
    constexpr scan_result(scan_result&&) = default;
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::scan_result(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
5782
151k
    constexpr scan_result(scan_result&&) = default;
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::scan_result(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&&)
Line
Count
Source
5782
842
    constexpr scan_result(scan_result&&) = default;
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::scan_result(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
5782
60
    constexpr scan_result(scan_result&&) = default;
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::scan_result(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&&)
Line
Count
Source
5782
19.6M
    constexpr scan_result(scan_result&&) = default;
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::scan_result(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
5782
152k
    constexpr scan_result(scan_result&&) = default;
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::scan_result(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&&)
Line
Count
Source
5782
19.6M
    constexpr scan_result(scan_result&&) = default;
5783
    constexpr scan_result& operator=(const scan_result&) = default;
5784
    constexpr scan_result& operator=(scan_result&&) = default;
5785
5786
79.0M
    ~scan_result() = default;
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::~scan_result()
Line
Count
Source
5786
303k
    ~scan_result() = default;
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::~scan_result()
Line
Count
Source
5786
1.68k
    ~scan_result() = default;
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::~scan_result()
Line
Count
Source
5786
120
    ~scan_result() = default;
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::~scan_result()
Line
Count
Source
5786
39.2M
    ~scan_result() = default;
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::~scan_result()
Line
Count
Source
5786
305k
    ~scan_result() = default;
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::~scan_result()
Line
Count
Source
5786
39.2M
    ~scan_result() = default;
5787
5788
    scan_result(range_type r, tuple_type&& values)
5789
        : range_base(SCN_MOVE(r)), value_base(SCN_MOVE(values))
5790
67.8M
    {
5791
67.8M
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, char>::scan_result(scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::tuple<char>&&)
Line
Count
Source
5790
146
    {
5791
146
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, int>::scan_result(scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::tuple<int>&&)
Line
Count
Source
5790
382k
    {
5791
382k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>::scan_result(scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::tuple<unsigned int>&&)
Line
Count
Source
5790
324k
    {
5791
324k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, double>::scan_result(scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::tuple<double>&&)
Line
Count
Source
5790
768k
    {
5791
768k
    }
Unexecuted instantiation: scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, bool>::scan_result(scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::tuple<bool>&&)
Unexecuted instantiation: scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, void*>::scan_result(scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::tuple<void*>&&)
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::scan_result(scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::tuple<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
5790
151k
    {
5791
151k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::scan_result(scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::tuple<std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&&)
Line
Count
Source
5790
842
    {
5791
842
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >::scan_result(scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::tuple<std::__1::basic_string_view<char, std::__1::char_traits<char> > >&&)
Line
Count
Source
5790
151k
    {
5791
151k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t>::scan_result(scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::tuple<wchar_t>&&)
Line
Count
Source
5790
60
    {
5791
60
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>::scan_result(scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::tuple<int>&&)
Line
Count
Source
5790
711
    {
5791
711
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>::scan_result(scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::tuple<unsigned int>&&)
Line
Count
Source
5790
564
    {
5791
564
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>::scan_result(scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::tuple<double>&&)
Line
Count
Source
5790
15.6k
    {
5791
15.6k
    }
Unexecuted instantiation: scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, bool>::scan_result(scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::tuple<bool>&&)
Unexecuted instantiation: scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void*>::scan_result(scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::tuple<void*>&&)
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::scan_result(scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::tuple<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
5790
60
    {
5791
60
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::scan_result(scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::tuple<std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&&)
Line
Count
Source
5790
19.6M
    {
5791
19.6M
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::scan_result(scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::tuple<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >&&)
Line
Count
Source
5790
19.6M
    {
5791
19.6M
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, signed char>::scan_result(scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::tuple<signed char>&&)
Line
Count
Source
5790
296k
    {
5791
296k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned char>::scan_result(scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::tuple<unsigned char>&&)
Line
Count
Source
5790
283k
    {
5791
283k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long long>::scan_result(scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::tuple<long long>&&)
Line
Count
Source
5790
390k
    {
5791
390k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned long long>::scan_result(scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::tuple<unsigned long long>&&)
Line
Count
Source
5790
328k
    {
5791
328k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, signed char>::scan_result(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::tuple<signed char>&&)
Line
Count
Source
5790
298k
    {
5791
298k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned char>::scan_result(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::tuple<unsigned char>&&)
Line
Count
Source
5790
285k
    {
5791
285k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, int>::scan_result(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::tuple<int>&&)
Line
Count
Source
5790
383k
    {
5791
383k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned int>::scan_result(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::tuple<unsigned int>&&)
Line
Count
Source
5790
326k
    {
5791
326k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long long>::scan_result(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::tuple<long long>&&)
Line
Count
Source
5790
390k
    {
5791
390k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned long long>::scan_result(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::tuple<unsigned long long>&&)
Line
Count
Source
5790
330k
    {
5791
330k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, signed char>::scan_result(scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::tuple<signed char>&&)
Line
Count
Source
5790
595
    {
5791
595
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned char>::scan_result(scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::tuple<unsigned char>&&)
Line
Count
Source
5790
500
    {
5791
500
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long long>::scan_result(scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::tuple<long long>&&)
Line
Count
Source
5790
864
    {
5791
864
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned long long>::scan_result(scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::tuple<unsigned long long>&&)
Line
Count
Source
5790
694
    {
5791
694
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, signed char>::scan_result(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::tuple<signed char>&&)
Line
Count
Source
5790
595
    {
5791
595
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned char>::scan_result(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::tuple<unsigned char>&&)
Line
Count
Source
5790
500
    {
5791
500
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, int>::scan_result(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::tuple<int>&&)
Line
Count
Source
5790
711
    {
5791
711
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned int>::scan_result(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::tuple<unsigned int>&&)
Line
Count
Source
5790
564
    {
5791
564
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long long>::scan_result(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::tuple<long long>&&)
Line
Count
Source
5790
864
    {
5791
864
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned long long>::scan_result(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::tuple<unsigned long long>&&)
Line
Count
Source
5790
694
    {
5791
694
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::scan_result(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::tuple<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
5790
152k
    {
5791
152k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::scan_result(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::tuple<std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&&)
Line
Count
Source
5790
19.6M
    {
5791
19.6M
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, float>::scan_result(scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::tuple<float>&&)
Line
Count
Source
5790
707k
    {
5791
707k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long double>::scan_result(scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::tuple<long double>&&)
Line
Count
Source
5790
779k
    {
5791
779k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, float>::scan_result(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::tuple<float>&&)
Line
Count
Source
5790
706k
    {
5791
706k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, double>::scan_result(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::tuple<double>&&)
Line
Count
Source
5790
766k
    {
5791
766k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long double>::scan_result(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::tuple<long double>&&)
Line
Count
Source
5790
776k
    {
5791
776k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, float>::scan_result(scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::tuple<float>&&)
Line
Count
Source
5790
15.5k
    {
5791
15.5k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long double>::scan_result(scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::tuple<long double>&&)
Line
Count
Source
5790
15.8k
    {
5791
15.8k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, float>::scan_result(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::tuple<float>&&)
Line
Count
Source
5790
15.5k
    {
5791
15.5k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, double>::scan_result(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::tuple<double>&&)
Line
Count
Source
5790
15.6k
    {
5791
15.6k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long double>::scan_result(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::tuple<long double>&&)
Line
Count
Source
5790
15.8k
    {
5791
15.8k
    }
5792
5793
    template <typename OtherR,
5794
              std::enable_if_t<std::is_constructible_v<range_type, OtherR>>* =
5795
                  nullptr>
5796
    scan_result(OtherR&& r, tuple_type&& values)
5797
        : range_base(detail::scan_result_convert_tag{}, SCN_FWD(r)),
5798
          value_base(SCN_MOVE(values))
5799
    {
5800
    }
5801
5802
    template <typename OtherR,
5803
              std::enable_if_t<
5804
                  std::is_constructible_v<range_type, OtherR> &&
5805
                  std::is_convertible_v<const OtherR&, range_type>>* = nullptr>
5806
    SCN_IMPLICIT scan_result(const scan_result<OtherR, Args...>& o)
5807
        : range_base(detail::scan_result_convert_tag{}, o.range()),
5808
          value_base(o.values())
5809
    {
5810
    }
5811
    template <typename OtherR,
5812
              std::enable_if_t<
5813
                  std::is_constructible_v<range_type, OtherR> &&
5814
                  !std::is_convertible_v<const OtherR&, range_type>>* = nullptr>
5815
    explicit scan_result(const scan_result<OtherR, Args...>& o)
5816
        : range_base(detail::scan_result_convert_tag{}, o.range()),
5817
          value_base(o.values())
5818
    {
5819
    }
5820
5821
    template <typename OtherR,
5822
              std::enable_if_t<std::is_constructible_v<range_type, OtherR> &&
5823
                               std::is_convertible_v<OtherR&&, range_type>>* =
5824
                  nullptr>
5825
    SCN_IMPLICIT scan_result(scan_result<OtherR, Args...>&& o)
5826
        : range_base(detail::scan_result_convert_tag{}, SCN_MOVE(o.range())),
5827
          value_base(SCN_MOVE(o.values()))
5828
    {
5829
    }
5830
    template <typename OtherR,
5831
              std::enable_if_t<std::is_constructible_v<range_type, OtherR> &&
5832
                               !std::is_convertible_v<OtherR&&, range_type>>* =
5833
                  nullptr>
5834
    explicit scan_result(scan_result<OtherR, Args...>&& o)
5835
        : range_base(detail::scan_result_convert_tag{}, SCN_MOVE(o.range())),
5836
          value_base(SCN_MOVE(o.values()))
5837
    {
5838
    }
5839
5840
    template <typename OtherR,
5841
              typename =
5842
                  std::enable_if_t<std::is_constructible_v<range_type, OtherR>>>
5843
    scan_result& operator=(const scan_result<OtherR, Args...>& o)
5844
    {
5845
        this->assign_range(o);
5846
        this->values() = o.values();
5847
        return *this;
5848
    }
5849
5850
    template <typename OtherR,
5851
              typename =
5852
                  std::enable_if_t<std::is_constructible_v<range_type, OtherR>>>
5853
    scan_result& operator=(scan_result<OtherR, Args...>&& o)
5854
    {
5855
        this->assign_range(o);
5856
        this->values() = SCN_MOVE(o.values());
5857
        return *this;
5858
    }
5859
};
5860
5861
template <typename R, typename... Args>
5862
scan_result(R, std::tuple<Args...>) -> scan_result<R, Args...>;
5863
template <typename R, typename Ctx, typename... Args>
5864
scan_result(R, detail::scan_arg_store<Ctx, Args...>&)
5865
    -> scan_result<R, Args...>;
5866
5867
namespace detail {
5868
template <typename SourceRange>
5869
auto make_vscan_result_range_end(SourceRange& source)
5870
67.8M
{
5871
67.8M
    return ranges::end(source);
5872
67.8M
}
auto scn::v3::detail::make_vscan_result_range_end<std::__1::basic_string_view<char, std::__1::char_traits<char> > >(std::__1::basic_string_view<char, std::__1::char_traits<char> >&)
Line
Count
Source
5870
2.67k
{
5871
2.67k
    return ranges::end(source);
5872
2.67k
}
auto scn::v3::detail::make_vscan_result_range_end<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&)
Line
Count
Source
5870
240
{
5871
240
    return ranges::end(source);
5872
240
}
auto scn::v3::detail::make_vscan_result_range_end<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >(scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>&)
Line
Count
Source
5870
4.56M
{
5871
4.56M
    return ranges::end(source);
5872
4.56M
}
auto scn::v3::detail::make_vscan_result_range_end<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > >(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >&)
Line
Count
Source
5870
4.41M
{
5871
4.41M
    return ranges::end(source);
5872
4.41M
}
auto scn::v3::detail::make_vscan_result_range_end<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >(scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>&)
Line
Count
Source
5870
39.2M
{
5871
39.2M
    return ranges::end(source);
5872
39.2M
}
auto scn::v3::detail::make_vscan_result_range_end<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > >(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >&)
Line
Count
Source
5870
19.6M
{
5871
19.6M
    return ranges::end(source);
5872
19.6M
}
5873
template <typename CharT, size_t N>
5874
auto make_vscan_result_range_end(CharT (&source)[N])
5875
    -> ranges::sentinel_t<CharT (&)[N]>
5876
{
5877
    return source + N - 1;
5878
}
5879
5880
template <typename SourceRange>
5881
auto make_vscan_result_range(SourceRange&& source, std::ptrdiff_t n)
5882
    -> borrowed_tail_subrange_t<SourceRange>
5883
67.8M
{
5884
67.8M
    if constexpr (ranges::random_access_iterator<
5885
67.8M
                      ranges::iterator_t<SourceRange>>) {
5886
67.8M
        return {ranges::begin(source) + n, make_vscan_result_range_end(source)};
5887
67.8M
    }
5888
67.8M
    else {
5889
67.8M
        auto it = ranges::begin(source);
5890
67.8M
        while (n > 0) {
5891
67.8M
            --n;
5892
67.8M
            ++it;
5893
67.8M
        }
5894
67.8M
        return {SCN_MOVE(it), make_vscan_result_range_end(source)};
5895
67.8M
    }
5896
67.8M
}
_ZN3scn2v36detail23make_vscan_result_rangeIRNSt3__117basic_string_viewIcNS3_11char_traitsIcEEEEEENS1_22borrowed_tail_subrangeIT_Xsr6rangesE14borrowed_rangeISA_EEE4typeEOSA_l
Line
Count
Source
5883
2.67k
{
5884
2.67k
    if constexpr (ranges::random_access_iterator<
5885
2.67k
                      ranges::iterator_t<SourceRange>>) {
5886
2.67k
        return {ranges::begin(source) + n, make_vscan_result_range_end(source)};
5887
2.67k
    }
5888
2.67k
    else {
5889
2.67k
        auto it = ranges::begin(source);
5890
2.67k
        while (n > 0) {
5891
2.67k
            --n;
5892
2.67k
            ++it;
5893
2.67k
        }
5894
2.67k
        return {SCN_MOVE(it), make_vscan_result_range_end(source)};
5895
2.67k
    }
5896
2.67k
}
_ZN3scn2v36detail23make_vscan_result_rangeIRNSt3__117basic_string_viewIwNS3_11char_traitsIwEEEEEENS1_22borrowed_tail_subrangeIT_Xsr6rangesE14borrowed_rangeISA_EEE4typeEOSA_l
Line
Count
Source
5883
240
{
5884
240
    if constexpr (ranges::random_access_iterator<
5885
240
                      ranges::iterator_t<SourceRange>>) {
5886
240
        return {ranges::begin(source) + n, make_vscan_result_range_end(source)};
5887
240
    }
5888
240
    else {
5889
240
        auto it = ranges::begin(source);
5890
240
        while (n > 0) {
5891
240
            --n;
5892
240
            ++it;
5893
240
        }
5894
240
        return {SCN_MOVE(it), make_vscan_result_range_end(source)};
5895
240
    }
5896
240
}
_ZN3scn2v36detail23make_vscan_result_rangeINS0_6ranges6detail9subrange_8subrangeIPKcS8_EEEENS1_22borrowed_tail_subrangeIT_Xsr6rangesE14borrowed_rangeISB_EEE4typeEOSB_l
Line
Count
Source
5883
4.56M
{
5884
4.56M
    if constexpr (ranges::random_access_iterator<
5885
4.56M
                      ranges::iterator_t<SourceRange>>) {
5886
4.56M
        return {ranges::begin(source) + n, make_vscan_result_range_end(source)};
5887
4.56M
    }
5888
4.56M
    else {
5889
4.56M
        auto it = ranges::begin(source);
5890
4.56M
        while (n > 0) {
5891
4.56M
            --n;
5892
4.56M
            ++it;
5893
4.56M
        }
5894
4.56M
        return {SCN_MOVE(it), make_vscan_result_range_end(source)};
5895
4.56M
    }
5896
4.56M
}
_ZN3scn2v36detail23make_vscan_result_rangeINS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS9_PKSA_lLl4096EEESE_EEEENS1_22borrowed_tail_subrangeIT_Xsr6rangesE14borrowed_rangeISH_EEE4typeEOSH_l
Line
Count
Source
5883
4.41M
{
5884
4.41M
    if constexpr (ranges::random_access_iterator<
5885
4.41M
                      ranges::iterator_t<SourceRange>>) {
5886
4.41M
        return {ranges::begin(source) + n, make_vscan_result_range_end(source)};
5887
4.41M
    }
5888
4.41M
    else {
5889
4.41M
        auto it = ranges::begin(source);
5890
4.41M
        while (n > 0) {
5891
4.41M
            --n;
5892
4.41M
            ++it;
5893
4.41M
        }
5894
4.41M
        return {SCN_MOVE(it), make_vscan_result_range_end(source)};
5895
4.41M
    }
5896
4.41M
}
_ZN3scn2v36detail23make_vscan_result_rangeINS0_6ranges6detail9subrange_8subrangeIPKwS8_EEEENS1_22borrowed_tail_subrangeIT_Xsr6rangesE14borrowed_rangeISB_EEE4typeEOSB_l
Line
Count
Source
5883
39.2M
{
5884
39.2M
    if constexpr (ranges::random_access_iterator<
5885
39.2M
                      ranges::iterator_t<SourceRange>>) {
5886
39.2M
        return {ranges::begin(source) + n, make_vscan_result_range_end(source)};
5887
39.2M
    }
5888
39.2M
    else {
5889
39.2M
        auto it = ranges::begin(source);
5890
39.2M
        while (n > 0) {
5891
39.2M
            --n;
5892
39.2M
            ++it;
5893
39.2M
        }
5894
39.2M
        return {SCN_MOVE(it), make_vscan_result_range_end(source)};
5895
39.2M
    }
5896
39.2M
}
_ZN3scn2v36detail23make_vscan_result_rangeINS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIwPKwRS9_PKSA_lLl1024EEESE_EEEENS1_22borrowed_tail_subrangeIT_Xsr6rangesE14borrowed_rangeISH_EEE4typeEOSH_l
Line
Count
Source
5883
19.6M
{
5884
19.6M
    if constexpr (ranges::random_access_iterator<
5885
19.6M
                      ranges::iterator_t<SourceRange>>) {
5886
19.6M
        return {ranges::begin(source) + n, make_vscan_result_range_end(source)};
5887
19.6M
    }
5888
19.6M
    else {
5889
19.6M
        auto it = ranges::begin(source);
5890
19.6M
        while (n > 0) {
5891
19.6M
            --n;
5892
19.6M
            ++it;
5893
19.6M
        }
5894
19.6M
        return {SCN_MOVE(it), make_vscan_result_range_end(source)};
5895
19.6M
    }
5896
19.6M
}
5897
inline auto make_vscan_result_range(std::FILE* source, std::ptrdiff_t)
5898
0
{
5899
0
    return source;
5900
0
}
5901
}  // namespace detail
5902
5903
/////////////////////////////////////////////////////////////////
5904
// Format string parsing
5905
/////////////////////////////////////////////////////////////////
5906
5907
namespace detail {
5908
/// Parse context with extra data used only for compile-time checks
5909
template <typename CharT>
5910
class compile_parse_context : public basic_scan_parse_context<CharT> {
5911
    using base = basic_scan_parse_context<CharT>;
5912
5913
public:
5914
    template <typename Source>
5915
    explicit constexpr compile_parse_context(
5916
        std::basic_string_view<CharT> format_str,
5917
        int num_args,
5918
        const arg_type* types,
5919
        type_identity<Source> source_tag,
5920
        int next_arg_id = 0)
5921
        : base(format_str, next_arg_id),
5922
          m_num_args(num_args),
5923
          m_types(types),
5924
          m_is_contiguous(ranges::range<Source> &&
5925
                          ranges::contiguous_range<Source>),
5926
          m_is_borrowed(
5927
              (ranges::range<Source> && ranges::borrowed_range<Source>) ||
5928
              std::is_same_v<detail::remove_cvref_t<Source>, std::FILE*>)
5929
    {
5930
    }
5931
5932
    SCN_NODISCARD constexpr int get_num_args() const
5933
0
    {
5934
0
        return m_num_args;
5935
0
    }
Unexecuted instantiation: scn::v3::detail::compile_parse_context<char>::get_num_args() const
Unexecuted instantiation: scn::v3::detail::compile_parse_context<wchar_t>::get_num_args() const
5936
    SCN_NODISCARD constexpr arg_type get_arg_type(std::size_t id) const
5937
    {
5938
        return m_types[id];
5939
    }
5940
5941
    SCN_GCC_PUSH
5942
    SCN_GCC_IGNORE("-Wsign-conversion")
5943
5944
    constexpr std::size_t next_arg_id()
5945
    {
5946
        auto id = base::next_arg_id();
5947
        if (SCN_UNLIKELY(id >= static_cast<size_t>(m_num_args))) {
5948
            this->on_error("Argument not found");
5949
        }
5950
        return id;
5951
    }
5952
5953
    constexpr void check_arg_id(std::size_t id)
5954
    {
5955
        base::check_arg_id(id);
5956
        if (SCN_UNLIKELY(id >= static_cast<size_t>(m_num_args))) {
5957
            this->on_error("Argument not found");
5958
        }
5959
    }
5960
    using base::check_arg_id;
5961
5962
    constexpr void check_arg_can_be_read(std::size_t id)
5963
    {
5964
        auto type = get_arg_type(id);
5965
5966
        if ((type == arg_type::narrow_string_view_type ||
5967
             type == arg_type::wide_string_view_type) &&
5968
            !m_is_contiguous) {
5969
            // clang-format off
5970
            this->on_error("Cannot read a string_view from a non-contiguous source");
5971
            // clang-format on
5972
            return;
5973
        }
5974
        if ((type == arg_type::narrow_string_view_type ||
5975
             type == arg_type::wide_string_view_type) &&
5976
            !m_is_borrowed) {
5977
            // clang-format off
5978
            this->on_error("Cannot read a string_view from a non-borrowed source");
5979
            // clang-format on
5980
            return;
5981
        }
5982
5983
        if ((type == arg_type::narrow_regex_matches_type ||
5984
             type == arg_type::wide_regex_matches_type) &&
5985
            !m_is_contiguous) {
5986
            // clang-format off
5987
            this->on_error("Cannot read a regex_matches from a non-contiguous source");
5988
            // clang-format on
5989
            return;
5990
        }
5991
    }
5992
5993
private:
5994
    int m_num_args;
5995
    const arg_type* m_types;
5996
    bool m_is_contiguous, m_is_borrowed;
5997
5998
    SCN_GCC_POP  // -Wsign-conversion
5999
};
6000
6001
constexpr inline bool is_constant_evaluated(bool default_value = false) noexcept
6002
0
{
6003
0
#ifdef __cpp_lib_is_constant_evaluated
6004
0
    SCN_UNUSED(default_value);
6005
0
    return std::is_constant_evaluated();
6006
0
#else
6007
0
    return default_value;
6008
0
#endif
6009
0
}
6010
}  // namespace detail
6011
6012
template <typename CharT>
6013
constexpr void basic_scan_parse_context<CharT>::do_check_arg_id(size_t id)
6014
32.0M
{
6015
32.0M
    if (detail::is_constant_evaluated() &&
6016
32.0M
        (!SCN_GCC || SCN_GCC >= SCN_COMPILER(12, 0, 0))) {
6017
        // The cast below will cause an error on gcc pre-12
6018
0
        using parse_context_type = detail::compile_parse_context<CharT>;
6019
0
        if (static_cast<int>(id) >=
6020
0
            static_cast<parse_context_type*>(this)->get_num_args()) {
6021
0
            SCN_UNLIKELY_ATTR
6022
0
            on_error("Argument not found");
6023
0
        }
6024
0
    }
6025
32.0M
}
scn::v3::basic_scan_parse_context<char>::do_check_arg_id(unsigned long)
Line
Count
Source
6014
7.15M
{
6015
7.15M
    if (detail::is_constant_evaluated() &&
6016
7.15M
        (!SCN_GCC || SCN_GCC >= SCN_COMPILER(12, 0, 0))) {
6017
        // The cast below will cause an error on gcc pre-12
6018
0
        using parse_context_type = detail::compile_parse_context<CharT>;
6019
0
        if (static_cast<int>(id) >=
6020
0
            static_cast<parse_context_type*>(this)->get_num_args()) {
6021
0
            SCN_UNLIKELY_ATTR
6022
0
            on_error("Argument not found");
6023
0
        }
6024
0
    }
6025
7.15M
}
scn::v3::basic_scan_parse_context<wchar_t>::do_check_arg_id(unsigned long)
Line
Count
Source
6014
24.9M
{
6015
24.9M
    if (detail::is_constant_evaluated() &&
6016
24.9M
        (!SCN_GCC || SCN_GCC >= SCN_COMPILER(12, 0, 0))) {
6017
        // The cast below will cause an error on gcc pre-12
6018
0
        using parse_context_type = detail::compile_parse_context<CharT>;
6019
0
        if (static_cast<int>(id) >=
6020
0
            static_cast<parse_context_type*>(this)->get_num_args()) {
6021
0
            SCN_UNLIKELY_ATTR
6022
0
            on_error("Argument not found");
6023
0
        }
6024
0
    }
6025
24.9M
}
6026
6027
namespace detail {
6028
enum class align_type : unsigned char {
6029
    none = 0,
6030
    left = 1,   // '<'
6031
    right = 2,  // '>'
6032
    center = 3  // '^'
6033
};
6034
6035
enum class presentation_type {
6036
    none,
6037
    int_binary,            // 'b', 'B'
6038
    int_decimal,           // 'd'
6039
    int_generic,           // 'i'
6040
    int_unsigned_decimal,  // 'u'
6041
    int_octal,             // 'o'
6042
    int_hex,               // 'x', 'X'
6043
    int_arbitrary_base,    // 'rnn', 'Rnn' (R for radix)
6044
    float_hex,             // 'a', 'A'
6045
    float_scientific,      // 'e', 'E'
6046
    float_fixed,           // 'f', 'F'
6047
    float_general,         // 'g', 'G'
6048
    string,                // 's'
6049
    string_set,            // '[...]'
6050
    regex,                 // '/.../.'
6051
    regex_escaped,         // '/..\/../.'
6052
    character,             // 'c'
6053
    escaped_character,     // '?'
6054
    pointer,               // 'p'
6055
};
6056
6057
enum class regex_flags {
6058
    none = 0,
6059
    multiline = 1,   // /m
6060
    singleline = 2,  // /s
6061
    nocase = 4,      // /i
6062
    nocapture = 8,   // /n
6063
    // TODO?
6064
    // would probably need to go hand-in-hand with locale,
6065
    // where it could even be the default/only option -> no flag?
6066
    // why else would you even use locale with a regex?
6067
    // collate = 16,
6068
};
6069
6070
constexpr regex_flags operator&(regex_flags a, regex_flags b)
6071
46.6k
{
6072
46.6k
    return static_cast<regex_flags>(static_cast<unsigned>(a) &
6073
46.6k
                                    static_cast<unsigned>(b));
6074
46.6k
}
6075
constexpr regex_flags operator|(regex_flags a, regex_flags b)
6076
5.08k
{
6077
5.08k
    return static_cast<regex_flags>(static_cast<unsigned>(a) |
6078
5.08k
                                    static_cast<unsigned>(b));
6079
5.08k
}
6080
constexpr regex_flags operator^(regex_flags a, regex_flags b)
6081
0
{
6082
0
    return static_cast<regex_flags>(static_cast<unsigned>(a) ^
6083
0
                                    static_cast<unsigned>(b));
6084
0
}
6085
6086
constexpr regex_flags& operator&=(regex_flags& a, regex_flags b)
6087
0
{
6088
0
    return a = a & b;
6089
0
}
6090
constexpr regex_flags& operator|=(regex_flags& a, regex_flags b)
6091
5.08k
{
6092
5.08k
    return a = a | b;
6093
5.08k
}
6094
constexpr regex_flags& operator^=(regex_flags& a, regex_flags b)
6095
0
{
6096
0
    return a = a ^ b;
6097
0
}
6098
6099
class fill_type {
6100
public:
6101
    constexpr void operator=(char c)
6102
0
    {
6103
0
        m_data[0] = c;
6104
0
        m_size = 1;
6105
0
    }
6106
6107
    template <typename CharT>
6108
    constexpr void operator=(std::basic_string_view<CharT> s)
6109
4.85k
    {
6110
4.85k
        SCN_EXPECT(!s.empty());
6111
4.85k
        SCN_EXPECT(s.size() * sizeof(CharT) <= max_size);
6112
4.85k
        if constexpr (sizeof(CharT) == 1) {
6113
10.3k
            for (size_t i = 0; i < s.size(); ++i) {
6114
5.89k
                SCN_GCC_PUSH
6115
5.89k
                SCN_GCC_IGNORE("-Wstringop-overflow")  // false positive
6116
5.89k
                m_data[i] = s[i];
6117
5.89k
                SCN_GCC_POP
6118
5.89k
            }
6119
4.44k
            m_size = static_cast<unsigned char>(s.size());
6120
4.44k
        }
6121
412
        else if constexpr (sizeof(CharT) == 2) {
6122
412
            m_data[0] = static_cast<char>(static_cast<unsigned>(s.front()));
6123
412
            m_data[1] =
6124
412
                static_cast<char>(static_cast<unsigned>(s.front()) >> 8);
6125
412
            if (s.size() == 1) {
6126
412
                return;
6127
412
            }
6128
412
            m_data[2] = static_cast<char>(static_cast<unsigned>(s[1]));
6129
412
            m_data[3] = static_cast<char>(static_cast<unsigned>(s[1]) >> 8);
6130
412
        }
6131
412
        else {
6132
412
            const auto front = static_cast<unsigned>(s.front());
6133
412
            m_data[0] = static_cast<char>(front);
6134
412
            m_data[1] = static_cast<char>(front >> 8);
6135
412
            m_data[2] = static_cast<char>(front >> 16);
6136
412
            m_data[3] = static_cast<char>(front >> 24);
6137
412
        }
6138
4.85k
    }
void scn::v3::detail::fill_type::operator=<char>(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Line
Count
Source
6109
4.44k
    {
6110
4.44k
        SCN_EXPECT(!s.empty());
6111
4.44k
        SCN_EXPECT(s.size() * sizeof(CharT) <= max_size);
6112
4.44k
        if constexpr (sizeof(CharT) == 1) {
6113
10.3k
            for (size_t i = 0; i < s.size(); ++i) {
6114
5.89k
                SCN_GCC_PUSH
6115
5.89k
                SCN_GCC_IGNORE("-Wstringop-overflow")  // false positive
6116
5.89k
                m_data[i] = s[i];
6117
5.89k
                SCN_GCC_POP
6118
5.89k
            }
6119
4.44k
            m_size = static_cast<unsigned char>(s.size());
6120
4.44k
        }
6121
4.44k
        else if constexpr (sizeof(CharT) == 2) {
6122
4.44k
            m_data[0] = static_cast<char>(static_cast<unsigned>(s.front()));
6123
4.44k
            m_data[1] =
6124
4.44k
                static_cast<char>(static_cast<unsigned>(s.front()) >> 8);
6125
4.44k
            if (s.size() == 1) {
6126
4.44k
                return;
6127
4.44k
            }
6128
4.44k
            m_data[2] = static_cast<char>(static_cast<unsigned>(s[1]));
6129
4.44k
            m_data[3] = static_cast<char>(static_cast<unsigned>(s[1]) >> 8);
6130
4.44k
        }
6131
4.44k
        else {
6132
4.44k
            const auto front = static_cast<unsigned>(s.front());
6133
4.44k
            m_data[0] = static_cast<char>(front);
6134
4.44k
            m_data[1] = static_cast<char>(front >> 8);
6135
4.44k
            m_data[2] = static_cast<char>(front >> 16);
6136
4.44k
            m_data[3] = static_cast<char>(front >> 24);
6137
4.44k
        }
6138
4.44k
    }
void scn::v3::detail::fill_type::operator=<wchar_t>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >)
Line
Count
Source
6109
412
    {
6110
412
        SCN_EXPECT(!s.empty());
6111
412
        SCN_EXPECT(s.size() * sizeof(CharT) <= max_size);
6112
412
        if constexpr (sizeof(CharT) == 1) {
6113
412
            for (size_t i = 0; i < s.size(); ++i) {
6114
412
                SCN_GCC_PUSH
6115
412
                SCN_GCC_IGNORE("-Wstringop-overflow")  // false positive
6116
412
                m_data[i] = s[i];
6117
412
                SCN_GCC_POP
6118
412
            }
6119
412
            m_size = static_cast<unsigned char>(s.size());
6120
412
        }
6121
412
        else if constexpr (sizeof(CharT) == 2) {
6122
412
            m_data[0] = static_cast<char>(static_cast<unsigned>(s.front()));
6123
412
            m_data[1] =
6124
412
                static_cast<char>(static_cast<unsigned>(s.front()) >> 8);
6125
412
            if (s.size() == 1) {
6126
412
                return;
6127
412
            }
6128
412
            m_data[2] = static_cast<char>(static_cast<unsigned>(s[1]));
6129
412
            m_data[3] = static_cast<char>(static_cast<unsigned>(s[1]) >> 8);
6130
412
        }
6131
412
        else {
6132
412
            const auto front = static_cast<unsigned>(s.front());
6133
412
            m_data[0] = static_cast<char>(front);
6134
412
            m_data[1] = static_cast<char>(front >> 8);
6135
412
            m_data[2] = static_cast<char>(front >> 16);
6136
412
            m_data[3] = static_cast<char>(front >> 24);
6137
412
        }
6138
412
    }
6139
6140
    constexpr size_t size() const
6141
3.80k
    {
6142
3.80k
        return m_size;
6143
3.80k
    }
6144
6145
    template <typename CharT>
6146
    CharT get_code_unit() const
6147
3.27k
    {
6148
3.27k
        SCN_EXPECT(m_size <= sizeof(CharT));
6149
3.27k
        CharT r{};
6150
3.27k
        std::memcpy(&r, m_data, m_size);
6151
3.27k
        return r;
6152
3.27k
    }
char scn::v3::detail::fill_type::get_code_unit<char>() const
Line
Count
Source
6147
2.88k
    {
6148
2.88k
        SCN_EXPECT(m_size <= sizeof(CharT));
6149
2.88k
        CharT r{};
6150
2.88k
        std::memcpy(&r, m_data, m_size);
6151
2.88k
        return r;
6152
2.88k
    }
wchar_t scn::v3::detail::fill_type::get_code_unit<wchar_t>() const
Line
Count
Source
6147
388
    {
6148
388
        SCN_EXPECT(m_size <= sizeof(CharT));
6149
388
        CharT r{};
6150
388
        std::memcpy(&r, m_data, m_size);
6151
388
        return r;
6152
388
    }
6153
6154
    template <typename CharT>
6155
    std::basic_string_view<CharT> get_code_units() const
6156
530
    {
6157
530
        return {reinterpret_cast<const CharT*>(m_data), m_size};
6158
530
    }
std::__1::basic_string_view<char, std::__1::char_traits<char> > scn::v3::detail::fill_type::get_code_units<char>() const
Line
Count
Source
6156
530
    {
6157
530
        return {reinterpret_cast<const CharT*>(m_data), m_size};
6158
530
    }
Unexecuted instantiation: std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > scn::v3::detail::fill_type::get_code_units<wchar_t>() const
6159
6160
private:
6161
    static constexpr size_t max_size = 4;
6162
    char m_data[max_size] = {' '};
6163
    unsigned char m_size{1};
6164
};
6165
6166
struct format_specs {
6167
    int width{0}, precision{0};
6168
    fill_type fill{};
6169
    presentation_type type{presentation_type::none};
6170
    std::array<uint8_t, 128 / 8> charset_literals{0};
6171
    bool charset_has_nonascii{false}, charset_is_inverted{false};
6172
    const void* charset_string_data{nullptr};
6173
    size_t charset_string_size{0};
6174
    regex_flags regexp_flags{regex_flags::none};
6175
    unsigned char arbitrary_base{0};
6176
    align_type align{align_type::none};
6177
    bool localized{false};
6178
6179
    constexpr format_specs() = default;
6180
6181
    SCN_NODISCARD constexpr int get_base() const
6182
3.93M
    {
6183
3.93M
        SCN_GCC_COMPAT_PUSH
6184
3.93M
        SCN_GCC_COMPAT_IGNORE("-Wswitch-enum")
6185
3.93M
        switch (type) {
6186
744k
            case presentation_type::none:
6187
744k
                return 10;
6188
991k
            case presentation_type::int_generic:
6189
991k
                return 0;
6190
0
            case presentation_type::int_arbitrary_base:
6191
0
                return arbitrary_base;
6192
6193
222k
            case presentation_type::int_binary:
6194
222k
                return 2;
6195
388k
            case presentation_type::int_octal:
6196
388k
                return 8;
6197
741k
            case presentation_type::int_decimal:
6198
741k
            case presentation_type::int_unsigned_decimal:
6199
741k
                return 10;
6200
845k
            case presentation_type::int_hex:
6201
845k
                return 16;
6202
6203
0
            default:
6204
0
                SCN_EXPECT(false);
6205
3.93M
                SCN_UNREACHABLE;
6206
3.93M
        }
6207
3.93M
        SCN_GCC_COMPAT_POP
6208
3.93M
    }
6209
6210
    template <typename CharT>
6211
    std::basic_string_view<CharT> charset_string() const
6212
14.2k
    {
6213
14.2k
        return {reinterpret_cast<const CharT*>(charset_string_data),
6214
14.2k
                charset_string_size};
6215
14.2k
    }
std::__1::basic_string_view<char, std::__1::char_traits<char> > scn::v3::detail::format_specs::charset_string<char>() const
Line
Count
Source
6212
14.2k
    {
6213
14.2k
        return {reinterpret_cast<const CharT*>(charset_string_data),
6214
14.2k
                charset_string_size};
6215
14.2k
    }
Unexecuted instantiation: std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > scn::v3::detail::format_specs::charset_string<wchar_t>() const
6216
};
6217
6218
struct specs_setter {
6219
public:
6220
32.0M
    explicit constexpr specs_setter(format_specs& specs) : m_specs(specs) {}
6221
6222
    constexpr void on_align(align_type align)
6223
8.67k
    {
6224
8.67k
        m_specs.align = align;
6225
8.67k
    }
6226
    template <typename CharT>
6227
    constexpr void on_fill(std::basic_string_view<CharT> fill)
6228
4.85k
    {
6229
4.85k
        m_specs.fill = fill;
6230
4.85k
    }
void scn::v3::detail::specs_setter::on_fill<char>(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Line
Count
Source
6228
4.44k
    {
6229
4.44k
        m_specs.fill = fill;
6230
4.44k
    }
void scn::v3::detail::specs_setter::on_fill<wchar_t>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >)
Line
Count
Source
6228
412
    {
6229
412
        m_specs.fill = fill;
6230
412
    }
6231
    constexpr void on_localized()
6232
1.80M
    {
6233
1.80M
        if constexpr (!SCN_DISABLE_LOCALE) {
6234
1.80M
            m_specs.localized = true;
6235
1.80M
        }
6236
0
        else {
6237
0
            on_error("'L' flag invalid when SCN_DISABLE_LOCALE is on");
6238
0
        }
6239
1.80M
    }
6240
6241
    constexpr void on_width(int width)
6242
35.6k
    {
6243
35.6k
        if (m_specs.precision != 0 && width > m_specs.precision) {
6244
            // clang-format off
6245
0
            return this->on_error("Width (i.e., minimum field length) cannot be larger than precision (i.e., maximum field length)");
6246
            // clang-format on
6247
0
        }
6248
6249
35.6k
        m_specs.width = width;
6250
35.6k
    }
6251
    constexpr void on_precision(int prec)
6252
8.39k
    {
6253
8.39k
        if (m_specs.width > prec) {
6254
            // clang-format off
6255
160
            return this->on_error("Width (i.e., minimum field length) cannot be larger than precision (i.e., maximum field length)");
6256
            // clang-format on
6257
160
        }
6258
6259
8.23k
        m_specs.precision = prec;
6260
8.23k
    }
6261
6262
    constexpr void on_type(presentation_type type)
6263
29.9M
    {
6264
29.9M
        m_specs.type = type;
6265
29.9M
    }
6266
6267
    constexpr void on_charset_single(char32_t cp)
6268
2.20M
    {
6269
2.20M
        const auto cp_value = static_cast<unsigned>(cp);
6270
2.20M
        if (SCN_LIKELY(cp_value <= 127)) {
6271
1.96M
            m_specs.charset_literals[cp_value / 8] |=
6272
1.96M
                static_cast<unsigned char>(1ul << (cp_value % 8));
6273
1.96M
        }
6274
246k
        else {
6275
246k
            m_specs.charset_has_nonascii = true;
6276
246k
        }
6277
2.20M
    }
6278
6279
    constexpr void on_charset_range(char32_t begin, char32_t end)
6280
44.0k
    {
6281
44.0k
        const auto begin_value = static_cast<unsigned>(begin);
6282
44.0k
        const auto end_value = static_cast<unsigned>(end);
6283
44.0k
        SCN_EXPECT(begin_value < end_value);
6284
6285
44.0k
        if (SCN_LIKELY(end_value <= 127)) {
6286
            // No need to bit-twiddle with a mask, because with the
6287
            // SCN_ASSUME, -O3 will optimize this to a single operation
6288
38.2k
            SCN_ASSUME(begin_value < end_value);
6289
1.27M
            for (auto v = begin_value; v != end_value; ++v) {
6290
1.23M
                m_specs.charset_literals[v / 8] |=
6291
1.23M
                    static_cast<unsigned char>(1ul << (v % 8));
6292
1.23M
            }
6293
38.2k
        }
6294
5.79k
        else {
6295
5.79k
            m_specs.charset_has_nonascii = true;
6296
5.79k
        }
6297
44.0k
    }
6298
6299
    constexpr void on_charset_inverted()
6300
2.42k
    {
6301
2.42k
        m_specs.charset_is_inverted = true;
6302
2.42k
    }
6303
6304
    template <typename CharT>
6305
    constexpr void on_character_set_string(std::basic_string_view<CharT> fmt)
6306
28.7k
    {
6307
28.7k
        m_specs.charset_string_data = fmt.data();
6308
28.7k
        m_specs.charset_string_size = fmt.size();
6309
28.7k
        on_type(presentation_type::string_set);
6310
28.7k
    }
void scn::v3::detail::specs_setter::on_character_set_string<char>(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Line
Count
Source
6306
19.3k
    {
6307
19.3k
        m_specs.charset_string_data = fmt.data();
6308
19.3k
        m_specs.charset_string_size = fmt.size();
6309
19.3k
        on_type(presentation_type::string_set);
6310
19.3k
    }
void scn::v3::detail::specs_setter::on_character_set_string<wchar_t>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >)
Line
Count
Source
6306
9.42k
    {
6307
9.42k
        m_specs.charset_string_data = fmt.data();
6308
9.42k
        m_specs.charset_string_size = fmt.size();
6309
9.42k
        on_type(presentation_type::string_set);
6310
9.42k
    }
6311
6312
    template <typename CharT>
6313
    constexpr void on_regex_pattern(std::basic_string_view<CharT> pattern)
6314
32.7k
    {
6315
32.7k
        m_specs.charset_string_data = pattern.data();
6316
32.7k
        m_specs.charset_string_size = pattern.size();
6317
32.7k
    }
void scn::v3::detail::specs_setter::on_regex_pattern<char>(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Line
Count
Source
6314
32.5k
    {
6315
32.5k
        m_specs.charset_string_data = pattern.data();
6316
32.5k
        m_specs.charset_string_size = pattern.size();
6317
32.5k
    }
void scn::v3::detail::specs_setter::on_regex_pattern<wchar_t>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >)
Line
Count
Source
6314
182
    {
6315
182
        m_specs.charset_string_data = pattern.data();
6316
182
        m_specs.charset_string_size = pattern.size();
6317
182
    }
6318
    constexpr void on_regex_flags(regex_flags flags)
6319
32.4k
    {
6320
32.4k
        m_specs.regexp_flags = flags;
6321
32.4k
    }
6322
6323
    // Intentionally not constexpr
6324
    void on_error(const char* msg)
6325
318k
    {
6326
318k
        SCN_UNLIKELY_ATTR
6327
318k
        m_error = scan_error{scan_error::invalid_format_string, msg};
6328
318k
    }
6329
    void on_error(scan_error err)
6330
0
    {
6331
0
        SCN_LIKELY(err);
6332
0
        m_error = err;
6333
0
    }
6334
6335
    constexpr explicit operator bool() const
6336
33.9M
    {
6337
33.9M
        return static_cast<bool>(m_error);
6338
33.9M
    }
6339
6340
    constexpr scan_error get_error() const
6341
0
    {
6342
0
        return m_error;
6343
0
    }
6344
6345
protected:
6346
    format_specs& m_specs;
6347
    scan_error m_error;
6348
};
6349
6350
template <typename CharT>
6351
constexpr int parse_simple_int(const CharT*& begin, const CharT* end)
6352
78.2k
{
6353
78.2k
    SCN_EXPECT(begin != end);
6354
78.2k
    SCN_EXPECT(*begin >= '0' && *begin <= '9');
6355
6356
78.2k
    unsigned long long value = 0;
6357
160k
    do {
6358
160k
        value *= 10;
6359
160k
        value += static_cast<unsigned long long>(*begin - '0');
6360
160k
        if (value >
6361
160k
            static_cast<unsigned long long>(std::numeric_limits<int>::max())) {
6362
122
            return -1;
6363
122
        }
6364
159k
        ++begin;
6365
159k
    } while (begin != end && *begin >= '0' && *begin <= '9');
6366
78.0k
    return static_cast<int>(value);
6367
78.2k
}
int scn::v3::detail::parse_simple_int<char>(char const*&, char const*)
Line
Count
Source
6352
22.4k
{
6353
22.4k
    SCN_EXPECT(begin != end);
6354
22.4k
    SCN_EXPECT(*begin >= '0' && *begin <= '9');
6355
6356
22.4k
    unsigned long long value = 0;
6357
85.5k
    do {
6358
85.5k
        value *= 10;
6359
85.5k
        value += static_cast<unsigned long long>(*begin - '0');
6360
85.5k
        if (value >
6361
85.5k
            static_cast<unsigned long long>(std::numeric_limits<int>::max())) {
6362
122
            return -1;
6363
122
        }
6364
85.4k
        ++begin;
6365
85.4k
    } while (begin != end && *begin >= '0' && *begin <= '9');
6366
22.3k
    return static_cast<int>(value);
6367
22.4k
}
int scn::v3::detail::parse_simple_int<wchar_t>(wchar_t const*&, wchar_t const*)
Line
Count
Source
6352
55.7k
{
6353
55.7k
    SCN_EXPECT(begin != end);
6354
55.7k
    SCN_EXPECT(*begin >= '0' && *begin <= '9');
6355
6356
55.7k
    unsigned long long value = 0;
6357
74.5k
    do {
6358
74.5k
        value *= 10;
6359
74.5k
        value += static_cast<unsigned long long>(*begin - '0');
6360
74.5k
        if (value >
6361
74.5k
            static_cast<unsigned long long>(std::numeric_limits<int>::max())) {
6362
0
            return -1;
6363
0
        }
6364
74.5k
        ++begin;
6365
74.5k
    } while (begin != end && *begin >= '0' && *begin <= '9');
6366
55.7k
    return static_cast<int>(value);
6367
55.7k
}
6368
6369
template <typename CharT, typename IDHandler>
6370
constexpr const CharT* do_parse_arg_id(const CharT* begin,
6371
                                       const CharT* end,
6372
                                       IDHandler&& handler)
6373
49.6k
{
6374
49.6k
    SCN_EXPECT(begin != end);
6375
6376
49.6k
    CharT c = *begin;
6377
49.6k
    if (c < CharT{'0'} || c > CharT{'9'}) {
6378
11.9k
        handler.on_error("Invalid argument ID");
6379
11.9k
        return begin;
6380
11.9k
    }
6381
6382
37.6k
    int idx = 0;
6383
37.6k
    if (c != CharT{'0'}) {
6384
34.0k
        idx = parse_simple_int(begin, end);
6385
34.0k
    }
6386
3.55k
    else {
6387
3.55k
        ++begin;
6388
3.55k
    }
6389
6390
37.6k
    if (begin == end || (*begin != CharT{'}'} && *begin != CharT{':'})) {
6391
33.8k
        handler.on_error("Invalid argument ID");
6392
33.8k
        return begin;
6393
33.8k
    }
6394
3.77k
    handler(idx);
6395
6396
3.77k
    return begin;
6397
37.6k
}
impl.cpp:char const* scn::v3::detail::do_parse_arg_id<char, scn::v3::detail::parse_replacement_field<char, scn::v3::(anonymous namespace)::format_handler<true, char> >(char const*, char const*, scn::v3::(anonymous namespace)::format_handler<true, char>&)::id_adapter&>(char const*, char const*, scn::v3::(anonymous namespace)::format_handler<true, char>&&)
Line
Count
Source
6373
15.4k
{
6374
15.4k
    SCN_EXPECT(begin != end);
6375
6376
15.4k
    CharT c = *begin;
6377
15.4k
    if (c < CharT{'0'} || c > CharT{'9'}) {
6378
11.7k
        handler.on_error("Invalid argument ID");
6379
11.7k
        return begin;
6380
11.7k
    }
6381
6382
3.70k
    int idx = 0;
6383
3.70k
    if (c != CharT{'0'}) {
6384
354
        idx = parse_simple_int(begin, end);
6385
354
    }
6386
3.34k
    else {
6387
3.34k
        ++begin;
6388
3.34k
    }
6389
6390
3.70k
    if (begin == end || (*begin != CharT{'}'} && *begin != CharT{':'})) {
6391
194
        handler.on_error("Invalid argument ID");
6392
194
        return begin;
6393
194
    }
6394
3.50k
    handler(idx);
6395
6396
3.50k
    return begin;
6397
3.70k
}
Unexecuted instantiation: impl.cpp:char const* scn::v3::detail::do_parse_arg_id<char, scn::v3::detail::parse_replacement_field<char, scn::v3::(anonymous namespace)::format_handler<false, char> >(char const*, char const*, scn::v3::(anonymous namespace)::format_handler<false, char>&)::id_adapter&>(char const*, char const*, scn::v3::(anonymous namespace)::format_handler<false, char>&&)
impl.cpp:wchar_t const* scn::v3::detail::do_parse_arg_id<wchar_t, scn::v3::detail::parse_replacement_field<wchar_t, scn::v3::(anonymous namespace)::format_handler<true, wchar_t> >(wchar_t const*, wchar_t const*, scn::v3::(anonymous namespace)::format_handler<true, wchar_t>&)::id_adapter&>(wchar_t const*, wchar_t const*, scn::v3::(anonymous namespace)::format_handler<true, wchar_t>&&)
Line
Count
Source
6373
34.2k
{
6374
34.2k
    SCN_EXPECT(begin != end);
6375
6376
34.2k
    CharT c = *begin;
6377
34.2k
    if (c < CharT{'0'} || c > CharT{'9'}) {
6378
262
        handler.on_error("Invalid argument ID");
6379
262
        return begin;
6380
262
    }
6381
6382
33.9k
    int idx = 0;
6383
33.9k
    if (c != CharT{'0'}) {
6384
33.7k
        idx = parse_simple_int(begin, end);
6385
33.7k
    }
6386
202
    else {
6387
202
        ++begin;
6388
202
    }
6389
6390
33.9k
    if (begin == end || (*begin != CharT{'}'} && *begin != CharT{':'})) {
6391
33.6k
        handler.on_error("Invalid argument ID");
6392
33.6k
        return begin;
6393
33.6k
    }
6394
270
    handler(idx);
6395
6396
270
    return begin;
6397
33.9k
}
Unexecuted instantiation: impl.cpp:wchar_t const* scn::v3::detail::do_parse_arg_id<wchar_t, scn::v3::detail::parse_replacement_field<wchar_t, scn::v3::(anonymous namespace)::format_handler<false, wchar_t> >(wchar_t const*, wchar_t const*, scn::v3::(anonymous namespace)::format_handler<false, wchar_t>&)::id_adapter&>(wchar_t const*, wchar_t const*, scn::v3::(anonymous namespace)::format_handler<false, wchar_t>&&)
6398
6399
template <typename CharT, typename IDHandler>
6400
constexpr const CharT* parse_arg_id(const CharT* begin,
6401
                                    const CharT* end,
6402
                                    IDHandler&& handler)
6403
32.0M
{
6404
32.0M
    SCN_EXPECT(begin != end);
6405
32.0M
    if (*begin != '}' && *begin != ':') {
6406
49.6k
        return do_parse_arg_id(begin, end, SCN_FWD(handler));
6407
49.6k
    }
6408
6409
31.9M
    handler();
6410
31.9M
    return begin;
6411
32.0M
}
impl.cpp:char const* scn::v3::detail::parse_arg_id<char, scn::v3::detail::parse_replacement_field<char, scn::v3::(anonymous namespace)::format_handler<true, char> >(char const*, char const*, scn::v3::(anonymous namespace)::format_handler<true, char>&)::id_adapter&>(char const*, char const*, scn::v3::(anonymous namespace)::format_handler<true, char>&&)
Line
Count
Source
6403
3.62M
{
6404
3.62M
    SCN_EXPECT(begin != end);
6405
3.62M
    if (*begin != '}' && *begin != ':') {
6406
15.4k
        return do_parse_arg_id(begin, end, SCN_FWD(handler));
6407
15.4k
    }
6408
6409
3.60M
    handler();
6410
3.60M
    return begin;
6411
3.62M
}
impl.cpp:char const* scn::v3::detail::parse_arg_id<char, scn::v3::detail::parse_replacement_field<char, scn::v3::(anonymous namespace)::format_handler<false, char> >(char const*, char const*, scn::v3::(anonymous namespace)::format_handler<false, char>&)::id_adapter&>(char const*, char const*, scn::v3::(anonymous namespace)::format_handler<false, char>&&)
Line
Count
Source
6403
3.54M
{
6404
3.54M
    SCN_EXPECT(begin != end);
6405
3.54M
    if (*begin != '}' && *begin != ':') {
6406
0
        return do_parse_arg_id(begin, end, SCN_FWD(handler));
6407
0
    }
6408
6409
3.54M
    handler();
6410
3.54M
    return begin;
6411
3.54M
}
impl.cpp:wchar_t const* scn::v3::detail::parse_arg_id<wchar_t, scn::v3::detail::parse_replacement_field<wchar_t, scn::v3::(anonymous namespace)::format_handler<true, wchar_t> >(wchar_t const*, wchar_t const*, scn::v3::(anonymous namespace)::format_handler<true, wchar_t>&)::id_adapter&>(wchar_t const*, wchar_t const*, scn::v3::(anonymous namespace)::format_handler<true, wchar_t>&&)
Line
Count
Source
6403
16.3M
{
6404
16.3M
    SCN_EXPECT(begin != end);
6405
16.3M
    if (*begin != '}' && *begin != ':') {
6406
34.2k
        return do_parse_arg_id(begin, end, SCN_FWD(handler));
6407
34.2k
    }
6408
6409
16.3M
    handler();
6410
16.3M
    return begin;
6411
16.3M
}
impl.cpp:wchar_t const* scn::v3::detail::parse_arg_id<wchar_t, scn::v3::detail::parse_replacement_field<wchar_t, scn::v3::(anonymous namespace)::format_handler<false, wchar_t> >(wchar_t const*, wchar_t const*, scn::v3::(anonymous namespace)::format_handler<false, wchar_t>&)::id_adapter&>(wchar_t const*, wchar_t const*, scn::v3::(anonymous namespace)::format_handler<false, wchar_t>&&)
Line
Count
Source
6403
8.49M
{
6404
8.49M
    SCN_EXPECT(begin != end);
6405
8.49M
    if (*begin != '}' && *begin != ':') {
6406
0
        return do_parse_arg_id(begin, end, SCN_FWD(handler));
6407
0
    }
6408
6409
8.49M
    handler();
6410
8.49M
    return begin;
6411
8.49M
}
6412
6413
template <typename CharT>
6414
constexpr presentation_type parse_presentation_type(CharT type)
6415
30.1M
{
6416
30.1M
    switch (type) {
6417
225k
        case 'b':
6418
365k
        case 'B':
6419
365k
            return presentation_type::int_binary;
6420
749k
        case 'd':
6421
749k
            return presentation_type::int_decimal;
6422
1.00M
        case 'i':
6423
1.00M
            return presentation_type::int_generic;
6424
182
        case 'u':
6425
182
            return presentation_type::int_unsigned_decimal;
6426
393k
        case 'o':
6427
393k
            return presentation_type::int_octal;
6428
845k
        case 'x':
6429
845k
        case 'X':
6430
845k
            return presentation_type::int_hex;
6431
98
        case 'r':
6432
160
        case 'R':
6433
160
            return presentation_type::int_arbitrary_base;
6434
1.17M
        case 'a':
6435
1.17M
        case 'A':
6436
1.17M
            return presentation_type::float_hex;
6437
138k
        case 'e':
6438
138k
        case 'E':
6439
138k
            return presentation_type::float_scientific;
6440
510k
        case 'f':
6441
510k
        case 'F':
6442
510k
            return presentation_type::float_fixed;
6443
902k
        case 'g':
6444
902k
        case 'G':
6445
902k
            return presentation_type::float_general;
6446
23.7M
        case 's':
6447
23.7M
            return presentation_type::string;
6448
14.3k
        case 'c':
6449
14.3k
            return presentation_type::character;
6450
68
        case '?':
6451
68
            return presentation_type::escaped_character;
6452
166
        case 'p':
6453
166
            return presentation_type::pointer;
6454
0
        case '[':
6455
0
        case '/':
6456
            // Should be handled by parse_presentation_set and
6457
            // parse_presentation_regex
6458
0
            SCN_EXPECT(false);
6459
0
            SCN_UNREACHABLE;
6460
295k
        default:
6461
295k
            return presentation_type::none;
6462
30.1M
    }
6463
30.1M
}
scn::v3::detail::presentation_type scn::v3::detail::parse_presentation_type<char>(char)
Line
Count
Source
6415
5.46M
{
6416
5.46M
    switch (type) {
6417
131k
        case 'b':
6418
177k
        case 'B':
6419
177k
            return presentation_type::int_binary;
6420
654k
        case 'd':
6421
654k
            return presentation_type::int_decimal;
6422
906k
        case 'i':
6423
906k
            return presentation_type::int_generic;
6424
88
        case 'u':
6425
88
            return presentation_type::int_unsigned_decimal;
6426
299k
        case 'o':
6427
299k
            return presentation_type::int_octal;
6428
750k
        case 'x':
6429
750k
        case 'X':
6430
750k
            return presentation_type::int_hex;
6431
34
        case 'r':
6432
68
        case 'R':
6433
68
            return presentation_type::int_arbitrary_base;
6434
1.08M
        case 'a':
6435
1.08M
        case 'A':
6436
1.08M
            return presentation_type::float_hex;
6437
66.1k
        case 'e':
6438
66.2k
        case 'E':
6439
66.2k
            return presentation_type::float_scientific;
6440
421k
        case 'f':
6441
422k
        case 'F':
6442
422k
            return presentation_type::float_fixed;
6443
814k
        case 'g':
6444
814k
        case 'G':
6445
814k
            return presentation_type::float_general;
6446
186k
        case 's':
6447
186k
            return presentation_type::string;
6448
5.04k
        case 'c':
6449
5.04k
            return presentation_type::character;
6450
34
        case '?':
6451
34
            return presentation_type::escaped_character;
6452
96
        case 'p':
6453
96
            return presentation_type::pointer;
6454
0
        case '[':
6455
0
        case '/':
6456
            // Should be handled by parse_presentation_set and
6457
            // parse_presentation_regex
6458
0
            SCN_EXPECT(false);
6459
0
            SCN_UNREACHABLE;
6460
98.6k
        default:
6461
98.6k
            return presentation_type::none;
6462
5.46M
    }
6463
5.46M
}
scn::v3::detail::presentation_type scn::v3::detail::parse_presentation_type<wchar_t>(wchar_t)
Line
Count
Source
6415
24.6M
{
6416
24.6M
    switch (type) {
6417
93.9k
        case 'b':
6418
187k
        case 'B':
6419
187k
            return presentation_type::int_binary;
6420
94.6k
        case 'd':
6421
94.6k
            return presentation_type::int_decimal;
6422
94.6k
        case 'i':
6423
94.6k
            return presentation_type::int_generic;
6424
94
        case 'u':
6425
94
            return presentation_type::int_unsigned_decimal;
6426
94.2k
        case 'o':
6427
94.2k
            return presentation_type::int_octal;
6428
94.7k
        case 'x':
6429
94.8k
        case 'X':
6430
94.8k
            return presentation_type::int_hex;
6431
64
        case 'r':
6432
92
        case 'R':
6433
92
            return presentation_type::int_arbitrary_base;
6434
89.1k
        case 'a':
6435
89.2k
        case 'A':
6436
89.2k
            return presentation_type::float_hex;
6437
72.0k
        case 'e':
6438
72.0k
        case 'E':
6439
72.0k
            return presentation_type::float_scientific;
6440
88.7k
        case 'f':
6441
88.8k
        case 'F':
6442
88.8k
            return presentation_type::float_fixed;
6443
88.6k
        case 'g':
6444
88.6k
        case 'G':
6445
88.6k
            return presentation_type::float_general;
6446
23.5M
        case 's':
6447
23.5M
            return presentation_type::string;
6448
9.32k
        case 'c':
6449
9.32k
            return presentation_type::character;
6450
34
        case '?':
6451
34
            return presentation_type::escaped_character;
6452
70
        case 'p':
6453
70
            return presentation_type::pointer;
6454
0
        case '[':
6455
0
        case '/':
6456
            // Should be handled by parse_presentation_set and
6457
            // parse_presentation_regex
6458
0
            SCN_EXPECT(false);
6459
0
            SCN_UNREACHABLE;
6460
196k
        default:
6461
196k
            return presentation_type::none;
6462
24.6M
    }
6463
24.6M
}
6464
6465
template <typename CharT>
6466
constexpr bool is_ascii_letter(CharT ch)
6467
31.6M
{
6468
31.6M
    return (ch >= CharT{'a'} && ch <= CharT{'z'}) ||
6469
31.6M
           (ch >= CharT{'A'} && ch <= CharT{'Z'});
6470
31.6M
}
bool scn::v3::detail::is_ascii_letter<char>(char)
Line
Count
Source
6467
6.98M
{
6468
6.98M
    return (ch >= CharT{'a'} && ch <= CharT{'z'}) ||
6469
6.98M
           (ch >= CharT{'A'} && ch <= CharT{'Z'});
6470
6.98M
}
bool scn::v3::detail::is_ascii_letter<wchar_t>(wchar_t)
Line
Count
Source
6467
24.6M
{
6468
24.6M
    return (ch >= CharT{'a'} && ch <= CharT{'z'}) ||
6469
24.6M
           (ch >= CharT{'A'} && ch <= CharT{'Z'});
6470
24.6M
}
6471
6472
template <typename CharT>
6473
constexpr int code_point_length(const CharT* begin, const CharT* end)
6474
2.34M
{
6475
2.34M
    SCN_EXPECT(begin != end);
6476
2.34M
    if constexpr (sizeof(CharT) != 1) {
6477
1.83M
        return 1;
6478
1.83M
    }
6479
1.83M
    else {
6480
1.83M
        const auto lengths =
6481
1.83M
            "\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\0\0\0\0\0\0\0\0\2\2\2\2\3"
6482
1.83M
            "\3\4";
6483
1.83M
        const int len = lengths[static_cast<unsigned char>(*begin) >> 3];
6484
1.83M
        return len;
6485
1.83M
    }
6486
2.34M
}
int scn::v3::detail::code_point_length<char>(char const*, char const*)
Line
Count
Source
6474
1.83M
{
6475
1.83M
    SCN_EXPECT(begin != end);
6476
1.83M
    if constexpr (sizeof(CharT) != 1) {
6477
1.83M
        return 1;
6478
1.83M
    }
6479
1.83M
    else {
6480
1.83M
        const auto lengths =
6481
1.83M
            "\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\0\0\0\0\0\0\0\0\2\2\2\2\3"
6482
1.83M
            "\3\4";
6483
1.83M
        const int len = lengths[static_cast<unsigned char>(*begin) >> 3];
6484
1.83M
        return len;
6485
1.83M
    }
6486
1.83M
}
int scn::v3::detail::code_point_length<wchar_t>(wchar_t const*, wchar_t const*)
Line
Count
Source
6474
506k
{
6475
506k
    SCN_EXPECT(begin != end);
6476
506k
    if constexpr (sizeof(CharT) != 1) {
6477
506k
        return 1;
6478
506k
    }
6479
506k
    else {
6480
506k
        const auto lengths =
6481
506k
            "\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\0\0\0\0\0\0\0\0\2\2\2\2\3"
6482
506k
            "\3\4";
6483
506k
        const int len = lengths[static_cast<unsigned char>(*begin) >> 3];
6484
506k
        return len;
6485
506k
    }
6486
506k
}
6487
6488
template <typename CharT, typename Handler>
6489
constexpr const CharT* parse_align(const CharT* begin,
6490
                                   const CharT* end,
6491
                                   Handler&& handler)
6492
2.34M
{
6493
2.34M
    SCN_EXPECT(begin != end);
6494
6495
4.68M
    auto check_align = [](wchar_t ch) {
6496
4.68M
        switch (ch) {
6497
1.24k
            case L'<':
6498
1.24k
                return align_type::left;
6499
2.26k
            case L'>':
6500
2.26k
                return align_type::right;
6501
6.89k
            case L'^':
6502
6.89k
                return align_type::center;
6503
4.67M
            default:
6504
4.67M
                return align_type::none;
6505
4.68M
        }
6506
4.68M
    };
impl.cpp:scn::v3::detail::parse_align<char, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<char> > >&>(char const*, char const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<char> > >&)::{lambda(wchar_t)#1}::operator()(wchar_t) const
Line
Count
Source
6495
1.88M
    auto check_align = [](wchar_t ch) {
6496
1.88M
        switch (ch) {
6497
944
            case L'<':
6498
944
                return align_type::left;
6499
2.12k
            case L'>':
6500
2.12k
                return align_type::right;
6501
6.33k
            case L'^':
6502
6.33k
                return align_type::center;
6503
1.87M
            default:
6504
1.87M
                return align_type::none;
6505
1.88M
        }
6506
1.88M
    };
impl.cpp:scn::v3::detail::parse_align<char, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<char> > >&>(char const*, char const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<char> > >&)::{lambda(wchar_t)#1}::operator()(wchar_t) const
Line
Count
Source
6495
1.78M
    auto check_align = [](wchar_t ch) {
6496
1.78M
        switch (ch) {
6497
0
            case L'<':
6498
0
                return align_type::left;
6499
0
            case L'>':
6500
0
                return align_type::right;
6501
0
            case L'^':
6502
0
                return align_type::center;
6503
1.78M
            default:
6504
1.78M
                return align_type::none;
6505
1.78M
        }
6506
1.78M
    };
impl.cpp:scn::v3::detail::parse_align<wchar_t, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<wchar_t> > >&>(wchar_t const*, wchar_t const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<wchar_t> > >&)::{lambda(wchar_t)#1}::operator()(wchar_t) const
Line
Count
Source
6495
525k
    auto check_align = [](wchar_t ch) {
6496
525k
        switch (ch) {
6497
298
            case L'<':
6498
298
                return align_type::left;
6499
140
            case L'>':
6500
140
                return align_type::right;
6501
564
            case L'^':
6502
564
                return align_type::center;
6503
524k
            default:
6504
524k
                return align_type::none;
6505
525k
        }
6506
525k
    };
impl.cpp:scn::v3::detail::parse_align<wchar_t, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<wchar_t> > >&>(wchar_t const*, wchar_t const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<wchar_t> > >&)::{lambda(wchar_t)#1}::operator()(wchar_t) const
Line
Count
Source
6495
487k
    auto check_align = [](wchar_t ch) {
6496
487k
        switch (ch) {
6497
0
            case L'<':
6498
0
                return align_type::left;
6499
0
            case L'>':
6500
0
                return align_type::right;
6501
0
            case L'^':
6502
0
                return align_type::center;
6503
487k
            default:
6504
487k
                return align_type::none;
6505
487k
        }
6506
487k
    };
6507
6508
2.34M
    auto potential_fill_len = code_point_length(begin, end);
6509
2.34M
    if (SCN_UNLIKELY(potential_fill_len == 0 ||
6510
2.34M
                     std::distance(begin, end) < potential_fill_len)) {
6511
42
        handler.on_error("Invalid encoding in fill character");
6512
42
        return begin;
6513
42
    }
6514
6515
2.34M
    auto potential_align_on_fill = check_align(static_cast<wchar_t>(*begin));
6516
6517
2.34M
    auto potential_fill = std::basic_string_view<CharT>{
6518
2.34M
        begin, static_cast<size_t>(potential_fill_len)};
6519
2.34M
    const auto begin_before_fill = begin;
6520
2.34M
    begin += potential_fill_len;
6521
6522
2.34M
    if (begin == end) {
6523
2.02k
        return begin_before_fill;
6524
2.02k
    }
6525
6526
2.34M
    auto potential_align_after_fill = check_align(static_cast<wchar_t>(*begin));
6527
2.34M
    const auto begin_after_fill = begin;
6528
2.34M
    ++begin;
6529
6530
2.34M
    if (potential_fill_len == 1) {
6531
2.34M
        if (SCN_UNLIKELY(potential_fill[0] == '{')) {
6532
152
            handler.on_error("Invalid fill character '{' in format string");
6533
152
            return begin;
6534
152
        }
6535
2.34M
        if (potential_fill[0] == '[') {
6536
27.0k
            return begin_before_fill;
6537
27.0k
        }
6538
2.34M
    }
6539
6540
2.31M
    if (potential_align_after_fill == align_type::none) {
6541
2.31M
        if (potential_align_on_fill != align_type::none) {
6542
3.81k
            handler.on_align(potential_align_on_fill);
6543
3.81k
            return begin_after_fill;
6544
3.81k
        }
6545
2.30M
        return begin_before_fill;
6546
2.31M
    }
6547
6548
4.85k
    handler.on_fill(potential_fill);
6549
4.85k
    handler.on_align(potential_align_after_fill);
6550
4.85k
    return begin;
6551
2.31M
}
impl.cpp:char const* scn::v3::detail::parse_align<char, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<char> > >&>(char const*, char const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<char> > >&)
Line
Count
Source
6492
943k
{
6493
943k
    SCN_EXPECT(begin != end);
6494
6495
943k
    auto check_align = [](wchar_t ch) {
6496
943k
        switch (ch) {
6497
943k
            case L'<':
6498
943k
                return align_type::left;
6499
943k
            case L'>':
6500
943k
                return align_type::right;
6501
943k
            case L'^':
6502
943k
                return align_type::center;
6503
943k
            default:
6504
943k
                return align_type::none;
6505
943k
        }
6506
943k
    };
6507
6508
943k
    auto potential_fill_len = code_point_length(begin, end);
6509
943k
    if (SCN_UNLIKELY(potential_fill_len == 0 ||
6510
943k
                     std::distance(begin, end) < potential_fill_len)) {
6511
42
        handler.on_error("Invalid encoding in fill character");
6512
42
        return begin;
6513
42
    }
6514
6515
943k
    auto potential_align_on_fill = check_align(static_cast<wchar_t>(*begin));
6516
6517
943k
    auto potential_fill = std::basic_string_view<CharT>{
6518
943k
        begin, static_cast<size_t>(potential_fill_len)};
6519
943k
    const auto begin_before_fill = begin;
6520
943k
    begin += potential_fill_len;
6521
6522
943k
    if (begin == end) {
6523
1.06k
        return begin_before_fill;
6524
1.06k
    }
6525
6526
942k
    auto potential_align_after_fill = check_align(static_cast<wchar_t>(*begin));
6527
942k
    const auto begin_after_fill = begin;
6528
942k
    ++begin;
6529
6530
942k
    if (potential_fill_len == 1) {
6531
941k
        if (SCN_UNLIKELY(potential_fill[0] == '{')) {
6532
108
            handler.on_error("Invalid fill character '{' in format string");
6533
108
            return begin;
6534
108
        }
6535
941k
        if (potential_fill[0] == '[') {
6536
14.7k
            return begin_before_fill;
6537
14.7k
        }
6538
941k
    }
6539
6540
927k
    if (potential_align_after_fill == align_type::none) {
6541
923k
        if (potential_align_on_fill != align_type::none) {
6542
3.44k
            handler.on_align(potential_align_on_fill);
6543
3.44k
            return begin_after_fill;
6544
3.44k
        }
6545
919k
        return begin_before_fill;
6546
923k
    }
6547
6548
4.44k
    handler.on_fill(potential_fill);
6549
4.44k
    handler.on_align(potential_align_after_fill);
6550
4.44k
    return begin;
6551
927k
}
impl.cpp:char const* scn::v3::detail::parse_align<char, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<char> > >&>(char const*, char const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<char> > >&)
Line
Count
Source
6492
894k
{
6493
894k
    SCN_EXPECT(begin != end);
6494
6495
894k
    auto check_align = [](wchar_t ch) {
6496
894k
        switch (ch) {
6497
894k
            case L'<':
6498
894k
                return align_type::left;
6499
894k
            case L'>':
6500
894k
                return align_type::right;
6501
894k
            case L'^':
6502
894k
                return align_type::center;
6503
894k
            default:
6504
894k
                return align_type::none;
6505
894k
        }
6506
894k
    };
6507
6508
894k
    auto potential_fill_len = code_point_length(begin, end);
6509
894k
    if (SCN_UNLIKELY(potential_fill_len == 0 ||
6510
894k
                     std::distance(begin, end) < potential_fill_len)) {
6511
0
        handler.on_error("Invalid encoding in fill character");
6512
0
        return begin;
6513
0
    }
6514
6515
894k
    auto potential_align_on_fill = check_align(static_cast<wchar_t>(*begin));
6516
6517
894k
    auto potential_fill = std::basic_string_view<CharT>{
6518
894k
        begin, static_cast<size_t>(potential_fill_len)};
6519
894k
    const auto begin_before_fill = begin;
6520
894k
    begin += potential_fill_len;
6521
6522
894k
    if (begin == end) {
6523
0
        return begin_before_fill;
6524
0
    }
6525
6526
894k
    auto potential_align_after_fill = check_align(static_cast<wchar_t>(*begin));
6527
894k
    const auto begin_after_fill = begin;
6528
894k
    ++begin;
6529
6530
894k
    if (potential_fill_len == 1) {
6531
894k
        if (SCN_UNLIKELY(potential_fill[0] == '{')) {
6532
0
            handler.on_error("Invalid fill character '{' in format string");
6533
0
            return begin;
6534
0
        }
6535
894k
        if (potential_fill[0] == '[') {
6536
2.36k
            return begin_before_fill;
6537
2.36k
        }
6538
894k
    }
6539
6540
892k
    if (potential_align_after_fill == align_type::none) {
6541
892k
        if (potential_align_on_fill != align_type::none) {
6542
0
            handler.on_align(potential_align_on_fill);
6543
0
            return begin_after_fill;
6544
0
        }
6545
892k
        return begin_before_fill;
6546
892k
    }
6547
6548
0
    handler.on_fill(potential_fill);
6549
0
    handler.on_align(potential_align_after_fill);
6550
0
    return begin;
6551
892k
}
impl.cpp:wchar_t const* scn::v3::detail::parse_align<wchar_t, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<wchar_t> > >&>(wchar_t const*, wchar_t const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<wchar_t> > >&)
Line
Count
Source
6492
263k
{
6493
263k
    SCN_EXPECT(begin != end);
6494
6495
263k
    auto check_align = [](wchar_t ch) {
6496
263k
        switch (ch) {
6497
263k
            case L'<':
6498
263k
                return align_type::left;
6499
263k
            case L'>':
6500
263k
                return align_type::right;
6501
263k
            case L'^':
6502
263k
                return align_type::center;
6503
263k
            default:
6504
263k
                return align_type::none;
6505
263k
        }
6506
263k
    };
6507
6508
263k
    auto potential_fill_len = code_point_length(begin, end);
6509
263k
    if (SCN_UNLIKELY(potential_fill_len == 0 ||
6510
263k
                     std::distance(begin, end) < potential_fill_len)) {
6511
0
        handler.on_error("Invalid encoding in fill character");
6512
0
        return begin;
6513
0
    }
6514
6515
263k
    auto potential_align_on_fill = check_align(static_cast<wchar_t>(*begin));
6516
6517
263k
    auto potential_fill = std::basic_string_view<CharT>{
6518
263k
        begin, static_cast<size_t>(potential_fill_len)};
6519
263k
    const auto begin_before_fill = begin;
6520
263k
    begin += potential_fill_len;
6521
6522
263k
    if (begin == end) {
6523
958
        return begin_before_fill;
6524
958
    }
6525
6526
262k
    auto potential_align_after_fill = check_align(static_cast<wchar_t>(*begin));
6527
262k
    const auto begin_after_fill = begin;
6528
262k
    ++begin;
6529
6530
262k
    if (potential_fill_len == 1) {
6531
262k
        if (SCN_UNLIKELY(potential_fill[0] == '{')) {
6532
44
            handler.on_error("Invalid fill character '{' in format string");
6533
44
            return begin;
6534
44
        }
6535
262k
        if (potential_fill[0] == '[') {
6536
6.88k
            return begin_before_fill;
6537
6.88k
        }
6538
262k
    }
6539
6540
255k
    if (potential_align_after_fill == align_type::none) {
6541
254k
        if (potential_align_on_fill != align_type::none) {
6542
378
            handler.on_align(potential_align_on_fill);
6543
378
            return begin_after_fill;
6544
378
        }
6545
254k
        return begin_before_fill;
6546
254k
    }
6547
6548
412
    handler.on_fill(potential_fill);
6549
412
    handler.on_align(potential_align_after_fill);
6550
412
    return begin;
6551
255k
}
impl.cpp:wchar_t const* scn::v3::detail::parse_align<wchar_t, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<wchar_t> > >&>(wchar_t const*, wchar_t const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<wchar_t> > >&)
Line
Count
Source
6492
243k
{
6493
243k
    SCN_EXPECT(begin != end);
6494
6495
243k
    auto check_align = [](wchar_t ch) {
6496
243k
        switch (ch) {
6497
243k
            case L'<':
6498
243k
                return align_type::left;
6499
243k
            case L'>':
6500
243k
                return align_type::right;
6501
243k
            case L'^':
6502
243k
                return align_type::center;
6503
243k
            default:
6504
243k
                return align_type::none;
6505
243k
        }
6506
243k
    };
6507
6508
243k
    auto potential_fill_len = code_point_length(begin, end);
6509
243k
    if (SCN_UNLIKELY(potential_fill_len == 0 ||
6510
243k
                     std::distance(begin, end) < potential_fill_len)) {
6511
0
        handler.on_error("Invalid encoding in fill character");
6512
0
        return begin;
6513
0
    }
6514
6515
243k
    auto potential_align_on_fill = check_align(static_cast<wchar_t>(*begin));
6516
6517
243k
    auto potential_fill = std::basic_string_view<CharT>{
6518
243k
        begin, static_cast<size_t>(potential_fill_len)};
6519
243k
    const auto begin_before_fill = begin;
6520
243k
    begin += potential_fill_len;
6521
6522
243k
    if (begin == end) {
6523
0
        return begin_before_fill;
6524
0
    }
6525
6526
243k
    auto potential_align_after_fill = check_align(static_cast<wchar_t>(*begin));
6527
243k
    const auto begin_after_fill = begin;
6528
243k
    ++begin;
6529
6530
243k
    if (potential_fill_len == 1) {
6531
243k
        if (SCN_UNLIKELY(potential_fill[0] == '{')) {
6532
0
            handler.on_error("Invalid fill character '{' in format string");
6533
0
            return begin;
6534
0
        }
6535
243k
        if (potential_fill[0] == '[') {
6536
3.11k
            return begin_before_fill;
6537
3.11k
        }
6538
243k
    }
6539
6540
240k
    if (potential_align_after_fill == align_type::none) {
6541
240k
        if (potential_align_on_fill != align_type::none) {
6542
0
            handler.on_align(potential_align_on_fill);
6543
0
            return begin_after_fill;
6544
0
        }
6545
240k
        return begin_before_fill;
6546
240k
    }
6547
6548
0
    handler.on_fill(potential_fill);
6549
0
    handler.on_align(potential_align_after_fill);
6550
0
    return begin;
6551
240k
}
6552
6553
template <typename CharT, typename Handler>
6554
constexpr const CharT* parse_width(const CharT* begin,
6555
                                   const CharT* end,
6556
                                   Handler&& handler)
6557
2.34M
{
6558
2.34M
    SCN_EXPECT(begin != end);
6559
6560
2.34M
    if (*begin >= CharT{'0'} && *begin <= CharT{'9'}) {
6561
35.6k
        int width = parse_simple_int(begin, end);
6562
35.6k
        if (SCN_LIKELY(width != -1)) {
6563
35.6k
            handler.on_width(width);
6564
35.6k
        }
6565
34
        else {
6566
34
            handler.on_error("Invalid field width");
6567
34
            return begin;
6568
34
        }
6569
35.6k
    }
6570
2.34M
    return begin;
6571
2.34M
}
impl.cpp:char const* scn::v3::detail::parse_width<char, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<char> > >&>(char const*, char const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<char> > >&)
Line
Count
Source
6557
943k
{
6558
943k
    SCN_EXPECT(begin != end);
6559
6560
943k
    if (*begin >= CharT{'0'} && *begin <= CharT{'9'}) {
6561
10.7k
        int width = parse_simple_int(begin, end);
6562
10.7k
        if (SCN_LIKELY(width != -1)) {
6563
10.7k
            handler.on_width(width);
6564
10.7k
        }
6565
34
        else {
6566
34
            handler.on_error("Invalid field width");
6567
34
            return begin;
6568
34
        }
6569
10.7k
    }
6570
943k
    return begin;
6571
943k
}
impl.cpp:char const* scn::v3::detail::parse_width<char, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<char> > >&>(char const*, char const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<char> > >&)
Line
Count
Source
6557
894k
{
6558
894k
    SCN_EXPECT(begin != end);
6559
6560
894k
    if (*begin >= CharT{'0'} && *begin <= CharT{'9'}) {
6561
3.07k
        int width = parse_simple_int(begin, end);
6562
3.07k
        if (SCN_LIKELY(width != -1)) {
6563
3.07k
            handler.on_width(width);
6564
3.07k
        }
6565
0
        else {
6566
0
            handler.on_error("Invalid field width");
6567
0
            return begin;
6568
0
        }
6569
3.07k
    }
6570
894k
    return begin;
6571
894k
}
impl.cpp:wchar_t const* scn::v3::detail::parse_width<wchar_t, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<wchar_t> > >&>(wchar_t const*, wchar_t const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<wchar_t> > >&)
Line
Count
Source
6557
262k
{
6558
262k
    SCN_EXPECT(begin != end);
6559
6560
262k
    if (*begin >= CharT{'0'} && *begin <= CharT{'9'}) {
6561
15.6k
        int width = parse_simple_int(begin, end);
6562
15.6k
        if (SCN_LIKELY(width != -1)) {
6563
15.6k
            handler.on_width(width);
6564
15.6k
        }
6565
0
        else {
6566
0
            handler.on_error("Invalid field width");
6567
0
            return begin;
6568
0
        }
6569
15.6k
    }
6570
262k
    return begin;
6571
262k
}
impl.cpp:wchar_t const* scn::v3::detail::parse_width<wchar_t, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<wchar_t> > >&>(wchar_t const*, wchar_t const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<wchar_t> > >&)
Line
Count
Source
6557
243k
{
6558
243k
    SCN_EXPECT(begin != end);
6559
6560
243k
    if (*begin >= CharT{'0'} && *begin <= CharT{'9'}) {
6561
6.15k
        int width = parse_simple_int(begin, end);
6562
6.15k
        if (SCN_LIKELY(width != -1)) {
6563
6.15k
            handler.on_width(width);
6564
6.15k
        }
6565
0
        else {
6566
0
            handler.on_error("Invalid field width");
6567
0
            return begin;
6568
0
        }
6569
6.15k
    }
6570
243k
    return begin;
6571
243k
}
6572
6573
template <typename CharT, typename Handler>
6574
constexpr const CharT* parse_precision(const CharT* begin,
6575
                                       const CharT* end,
6576
                                       Handler&& handler)
6577
8.62k
{
6578
8.62k
    SCN_EXPECT(begin != end);
6579
6580
8.62k
    if (*begin >= CharT{'0'} && *begin <= CharT{'9'}) {
6581
8.45k
        int prec = parse_simple_int(begin, end);
6582
8.45k
        if (SCN_LIKELY(prec != -1)) {
6583
8.39k
            handler.on_precision(prec);
6584
8.39k
        }
6585
54
        else {
6586
54
            handler.on_error("Invalid field precision");
6587
54
            return begin;
6588
54
        }
6589
8.45k
    }
6590
8.56k
    return begin;
6591
8.62k
}
impl.cpp:char const* scn::v3::detail::parse_precision<char, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<char> > >&>(char const*, char const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<char> > >&)
Line
Count
Source
6577
8.31k
{
6578
8.31k
    SCN_EXPECT(begin != end);
6579
6580
8.31k
    if (*begin >= CharT{'0'} && *begin <= CharT{'9'}) {
6581
8.23k
        int prec = parse_simple_int(begin, end);
6582
8.23k
        if (SCN_LIKELY(prec != -1)) {
6583
8.18k
            handler.on_precision(prec);
6584
8.18k
        }
6585
54
        else {
6586
54
            handler.on_error("Invalid field precision");
6587
54
            return begin;
6588
54
        }
6589
8.23k
    }
6590
8.25k
    return begin;
6591
8.31k
}
Unexecuted instantiation: impl.cpp:char const* scn::v3::detail::parse_precision<char, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<char> > >&>(char const*, char const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<char> > >&)
impl.cpp:wchar_t const* scn::v3::detail::parse_precision<wchar_t, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<wchar_t> > >&>(wchar_t const*, wchar_t const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<wchar_t> > >&)
Line
Count
Source
6577
308
{
6578
308
    SCN_EXPECT(begin != end);
6579
6580
308
    if (*begin >= CharT{'0'} && *begin <= CharT{'9'}) {
6581
214
        int prec = parse_simple_int(begin, end);
6582
214
        if (SCN_LIKELY(prec != -1)) {
6583
214
            handler.on_precision(prec);
6584
214
        }
6585
0
        else {
6586
0
            handler.on_error("Invalid field precision");
6587
0
            return begin;
6588
0
        }
6589
214
    }
6590
308
    return begin;
6591
308
}
Unexecuted instantiation: impl.cpp:wchar_t const* scn::v3::detail::parse_precision<wchar_t, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<wchar_t> > >&>(wchar_t const*, wchar_t const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<wchar_t> > >&)
6592
6593
template <typename CharT, typename SpecHandler>
6594
constexpr char32_t parse_presentation_set_code_point(const CharT*& begin,
6595
                                                     const CharT* end,
6596
                                                     SpecHandler&& handler)
6597
3.03M
{
6598
3.03M
    SCN_EXPECT(begin != end);
6599
6600
3.03M
    auto len = code_point_length_by_starting_code_unit(*begin);
6601
3.03M
    if (SCN_UNLIKELY(len == 0 || static_cast<size_t>(end - begin) < len)) {
6602
98
        handler.on_error("Invalid encoding in format string");
6603
98
        return invalid_code_point;
6604
98
    }
6605
6606
3.03M
    const auto cp =
6607
3.03M
        decode_code_point_exhaustive(std::basic_string_view<CharT>{begin, len});
6608
3.03M
    if (SCN_UNLIKELY(cp >= invalid_code_point)) {
6609
268
        handler.on_error("Invalid encoding in format string");
6610
268
        return invalid_code_point;
6611
268
    }
6612
6613
3.03M
    begin += len;
6614
3.03M
    return cp;
6615
3.03M
}
char32_t scn::v3::detail::parse_presentation_set_code_point<char, scn::v3::impl::nonascii_specs_handler&>(char const*&, char const*, scn::v3::impl::nonascii_specs_handler&)
Line
Count
Source
6597
738k
{
6598
738k
    SCN_EXPECT(begin != end);
6599
6600
738k
    auto len = code_point_length_by_starting_code_unit(*begin);
6601
738k
    if (SCN_UNLIKELY(len == 0 || static_cast<size_t>(end - begin) < len)) {
6602
0
        handler.on_error("Invalid encoding in format string");
6603
0
        return invalid_code_point;
6604
0
    }
6605
6606
738k
    const auto cp =
6607
738k
        decode_code_point_exhaustive(std::basic_string_view<CharT>{begin, len});
6608
738k
    if (SCN_UNLIKELY(cp >= invalid_code_point)) {
6609
0
        handler.on_error("Invalid encoding in format string");
6610
0
        return invalid_code_point;
6611
0
    }
6612
6613
738k
    begin += len;
6614
738k
    return cp;
6615
738k
}
Unexecuted instantiation: char32_t scn::v3::detail::parse_presentation_set_code_point<wchar_t, scn::v3::impl::nonascii_specs_handler&>(wchar_t const*&, wchar_t const*, scn::v3::impl::nonascii_specs_handler&)
impl.cpp:char32_t scn::v3::detail::parse_presentation_set_code_point<char, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<char> > >&>(char const*&, char const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<char> > >&)
Line
Count
Source
6597
2.24M
{
6598
2.24M
    SCN_EXPECT(begin != end);
6599
6600
2.24M
    auto len = code_point_length_by_starting_code_unit(*begin);
6601
2.24M
    if (SCN_UNLIKELY(len == 0 || static_cast<size_t>(end - begin) < len)) {
6602
98
        handler.on_error("Invalid encoding in format string");
6603
98
        return invalid_code_point;
6604
98
    }
6605
6606
2.24M
    const auto cp =
6607
2.24M
        decode_code_point_exhaustive(std::basic_string_view<CharT>{begin, len});
6608
2.24M
    if (SCN_UNLIKELY(cp >= invalid_code_point)) {
6609
74
        handler.on_error("Invalid encoding in format string");
6610
74
        return invalid_code_point;
6611
74
    }
6612
6613
2.24M
    begin += len;
6614
2.24M
    return cp;
6615
2.24M
}
impl.cpp:char32_t scn::v3::detail::parse_presentation_set_code_point<char, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<char> > >&>(char const*&, char const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<char> > >&)
Line
Count
Source
6597
9.45k
{
6598
9.45k
    SCN_EXPECT(begin != end);
6599
6600
9.45k
    auto len = code_point_length_by_starting_code_unit(*begin);
6601
9.45k
    if (SCN_UNLIKELY(len == 0 || static_cast<size_t>(end - begin) < len)) {
6602
0
        handler.on_error("Invalid encoding in format string");
6603
0
        return invalid_code_point;
6604
0
    }
6605
6606
9.45k
    const auto cp =
6607
9.45k
        decode_code_point_exhaustive(std::basic_string_view<CharT>{begin, len});
6608
9.45k
    if (SCN_UNLIKELY(cp >= invalid_code_point)) {
6609
0
        handler.on_error("Invalid encoding in format string");
6610
0
        return invalid_code_point;
6611
0
    }
6612
6613
9.45k
    begin += len;
6614
9.45k
    return cp;
6615
9.45k
}
impl.cpp:char32_t scn::v3::detail::parse_presentation_set_code_point<wchar_t, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<wchar_t> > >&>(wchar_t const*&, wchar_t const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<wchar_t> > >&)
Line
Count
Source
6597
27.2k
{
6598
27.2k
    SCN_EXPECT(begin != end);
6599
6600
27.2k
    auto len = code_point_length_by_starting_code_unit(*begin);
6601
27.2k
    if (SCN_UNLIKELY(len == 0 || static_cast<size_t>(end - begin) < len)) {
6602
0
        handler.on_error("Invalid encoding in format string");
6603
0
        return invalid_code_point;
6604
0
    }
6605
6606
27.2k
    const auto cp =
6607
27.2k
        decode_code_point_exhaustive(std::basic_string_view<CharT>{begin, len});
6608
27.2k
    if (SCN_UNLIKELY(cp >= invalid_code_point)) {
6609
194
        handler.on_error("Invalid encoding in format string");
6610
194
        return invalid_code_point;
6611
194
    }
6612
6613
27.0k
    begin += len;
6614
27.0k
    return cp;
6615
27.2k
}
impl.cpp:char32_t scn::v3::detail::parse_presentation_set_code_point<wchar_t, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<wchar_t> > >&>(wchar_t const*&, wchar_t const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<wchar_t> > >&)
Line
Count
Source
6597
12.4k
{
6598
12.4k
    SCN_EXPECT(begin != end);
6599
6600
12.4k
    auto len = code_point_length_by_starting_code_unit(*begin);
6601
12.4k
    if (SCN_UNLIKELY(len == 0 || static_cast<size_t>(end - begin) < len)) {
6602
0
        handler.on_error("Invalid encoding in format string");
6603
0
        return invalid_code_point;
6604
0
    }
6605
6606
12.4k
    const auto cp =
6607
12.4k
        decode_code_point_exhaustive(std::basic_string_view<CharT>{begin, len});
6608
12.4k
    if (SCN_UNLIKELY(cp >= invalid_code_point)) {
6609
0
        handler.on_error("Invalid encoding in format string");
6610
0
        return invalid_code_point;
6611
0
    }
6612
6613
12.4k
    begin += len;
6614
12.4k
    return cp;
6615
12.4k
}
6616
6617
template <typename CharT, typename SpecHandler>
6618
constexpr void parse_presentation_set_literal(const CharT*& begin,
6619
                                              const CharT* end,
6620
                                              SpecHandler&& handler)
6621
2.98M
{
6622
2.98M
    SCN_EXPECT(begin != end);
6623
6624
2.98M
    auto cp_first = parse_presentation_set_code_point(begin, end, handler);
6625
2.98M
    if (SCN_UNLIKELY(cp_first >= invalid_code_point)) {
6626
256
        return;
6627
256
    }
6628
6629
2.98M
    if (begin != end && *begin == CharT{'-'} && (begin + 1) != end &&
6630
2.98M
        *(begin + 1) != CharT{']'}) {
6631
47.6k
        ++begin;
6632
6633
47.6k
        auto cp_second = parse_presentation_set_code_point(begin, end, handler);
6634
47.6k
        if (SCN_UNLIKELY(cp_second >= invalid_code_point)) {
6635
110
            return;
6636
110
        }
6637
6638
47.5k
        if (SCN_UNLIKELY(cp_second < cp_first)) {
6639
            // clang-format off
6640
72
            handler.on_error("Invalid range in [character set] format string argument: Range end before the beginning");
6641
            // clang-format on
6642
72
            return;
6643
72
        }
6644
6645
47.4k
        handler.on_charset_range(cp_first, cp_second + 1);
6646
47.4k
        return;
6647
47.5k
    }
6648
6649
2.93M
    handler.on_charset_single(cp_first);
6650
2.93M
}
void scn::v3::detail::parse_presentation_set_literal<char, scn::v3::impl::nonascii_specs_handler&>(char const*&, char const*, scn::v3::impl::nonascii_specs_handler&)
Line
Count
Source
6621
735k
{
6622
735k
    SCN_EXPECT(begin != end);
6623
6624
735k
    auto cp_first = parse_presentation_set_code_point(begin, end, handler);
6625
735k
    if (SCN_UNLIKELY(cp_first >= invalid_code_point)) {
6626
0
        return;
6627
0
    }
6628
6629
735k
    if (begin != end && *begin == CharT{'-'} && (begin + 1) != end &&
6630
735k
        *(begin + 1) != CharT{']'}) {
6631
3.39k
        ++begin;
6632
6633
3.39k
        auto cp_second = parse_presentation_set_code_point(begin, end, handler);
6634
3.39k
        if (SCN_UNLIKELY(cp_second >= invalid_code_point)) {
6635
0
            return;
6636
0
        }
6637
6638
3.39k
        if (SCN_UNLIKELY(cp_second < cp_first)) {
6639
            // clang-format off
6640
0
            handler.on_error("Invalid range in [character set] format string argument: Range end before the beginning");
6641
            // clang-format on
6642
0
            return;
6643
0
        }
6644
6645
3.39k
        handler.on_charset_range(cp_first, cp_second + 1);
6646
3.39k
        return;
6647
3.39k
    }
6648
6649
731k
    handler.on_charset_single(cp_first);
6650
731k
}
Unexecuted instantiation: void scn::v3::detail::parse_presentation_set_literal<wchar_t, scn::v3::impl::nonascii_specs_handler&>(wchar_t const*&, wchar_t const*, scn::v3::impl::nonascii_specs_handler&)
impl.cpp:void scn::v3::detail::parse_presentation_set_literal<char, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<char> > >&>(char const*&, char const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<char> > >&)
Line
Count
Source
6621
2.22M
{
6622
2.22M
    SCN_EXPECT(begin != end);
6623
6624
2.22M
    auto cp_first = parse_presentation_set_code_point(begin, end, handler);
6625
2.22M
    if (SCN_UNLIKELY(cp_first >= invalid_code_point)) {
6626
102
        return;
6627
102
    }
6628
6629
2.22M
    if (begin != end && *begin == CharT{'-'} && (begin + 1) != end &&
6630
2.22M
        *(begin + 1) != CharT{']'}) {
6631
20.5k
        ++begin;
6632
6633
20.5k
        auto cp_second = parse_presentation_set_code_point(begin, end, handler);
6634
20.5k
        if (SCN_UNLIKELY(cp_second >= invalid_code_point)) {
6635
70
            return;
6636
70
        }
6637
6638
20.4k
        if (SCN_UNLIKELY(cp_second < cp_first)) {
6639
            // clang-format off
6640
34
            handler.on_error("Invalid range in [character set] format string argument: Range end before the beginning");
6641
            // clang-format on
6642
34
            return;
6643
34
        }
6644
6645
20.4k
        handler.on_charset_range(cp_first, cp_second + 1);
6646
20.4k
        return;
6647
20.4k
    }
6648
6649
2.20M
    handler.on_charset_single(cp_first);
6650
2.20M
}
impl.cpp:void scn::v3::detail::parse_presentation_set_literal<char, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<char> > >&>(char const*&, char const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<char> > >&)
Line
Count
Source
6621
4.72k
{
6622
4.72k
    SCN_EXPECT(begin != end);
6623
6624
4.72k
    auto cp_first = parse_presentation_set_code_point(begin, end, handler);
6625
4.72k
    if (SCN_UNLIKELY(cp_first >= invalid_code_point)) {
6626
0
        return;
6627
0
    }
6628
6629
4.72k
    if (begin != end && *begin == CharT{'-'} && (begin + 1) != end &&
6630
4.72k
        *(begin + 1) != CharT{']'}) {
6631
4.72k
        ++begin;
6632
6633
4.72k
        auto cp_second = parse_presentation_set_code_point(begin, end, handler);
6634
4.72k
        if (SCN_UNLIKELY(cp_second >= invalid_code_point)) {
6635
0
            return;
6636
0
        }
6637
6638
4.72k
        if (SCN_UNLIKELY(cp_second < cp_first)) {
6639
            // clang-format off
6640
0
            handler.on_error("Invalid range in [character set] format string argument: Range end before the beginning");
6641
            // clang-format on
6642
0
            return;
6643
0
        }
6644
6645
4.72k
        handler.on_charset_range(cp_first, cp_second + 1);
6646
4.72k
        return;
6647
4.72k
    }
6648
6649
0
    handler.on_charset_single(cp_first);
6650
0
}
impl.cpp:void scn::v3::detail::parse_presentation_set_literal<wchar_t, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<wchar_t> > >&>(wchar_t const*&, wchar_t const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<wchar_t> > >&)
Line
Count
Source
6621
14.4k
{
6622
14.4k
    SCN_EXPECT(begin != end);
6623
6624
14.4k
    auto cp_first = parse_presentation_set_code_point(begin, end, handler);
6625
14.4k
    if (SCN_UNLIKELY(cp_first >= invalid_code_point)) {
6626
154
        return;
6627
154
    }
6628
6629
14.3k
    if (begin != end && *begin == CharT{'-'} && (begin + 1) != end &&
6630
14.3k
        *(begin + 1) != CharT{']'}) {
6631
12.7k
        ++begin;
6632
6633
12.7k
        auto cp_second = parse_presentation_set_code_point(begin, end, handler);
6634
12.7k
        if (SCN_UNLIKELY(cp_second >= invalid_code_point)) {
6635
40
            return;
6636
40
        }
6637
6638
12.7k
        if (SCN_UNLIKELY(cp_second < cp_first)) {
6639
            // clang-format off
6640
38
            handler.on_error("Invalid range in [character set] format string argument: Range end before the beginning");
6641
            // clang-format on
6642
38
            return;
6643
38
        }
6644
6645
12.6k
        handler.on_charset_range(cp_first, cp_second + 1);
6646
12.6k
        return;
6647
12.7k
    }
6648
6649
1.57k
    handler.on_charset_single(cp_first);
6650
1.57k
}
impl.cpp:void scn::v3::detail::parse_presentation_set_literal<wchar_t, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<wchar_t> > >&>(wchar_t const*&, wchar_t const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<wchar_t> > >&)
Line
Count
Source
6621
6.22k
{
6622
6.22k
    SCN_EXPECT(begin != end);
6623
6624
6.22k
    auto cp_first = parse_presentation_set_code_point(begin, end, handler);
6625
6.22k
    if (SCN_UNLIKELY(cp_first >= invalid_code_point)) {
6626
0
        return;
6627
0
    }
6628
6629
6.22k
    if (begin != end && *begin == CharT{'-'} && (begin + 1) != end &&
6630
6.22k
        *(begin + 1) != CharT{']'}) {
6631
6.22k
        ++begin;
6632
6633
6.22k
        auto cp_second = parse_presentation_set_code_point(begin, end, handler);
6634
6.22k
        if (SCN_UNLIKELY(cp_second >= invalid_code_point)) {
6635
0
            return;
6636
0
        }
6637
6638
6.22k
        if (SCN_UNLIKELY(cp_second < cp_first)) {
6639
            // clang-format off
6640
0
            handler.on_error("Invalid range in [character set] format string argument: Range end before the beginning");
6641
            // clang-format on
6642
0
            return;
6643
0
        }
6644
6645
6.22k
        handler.on_charset_range(cp_first, cp_second + 1);
6646
6.22k
        return;
6647
6.22k
    }
6648
6649
0
    handler.on_charset_single(cp_first);
6650
0
}
6651
6652
template <typename CharT, typename SpecHandler>
6653
constexpr std::basic_string_view<CharT> parse_presentation_set(
6654
    const CharT*& begin,
6655
    const CharT* end,
6656
    SpecHandler&& handler)
6657
33.6k
{
6658
33.6k
    SCN_EXPECT(begin != end);
6659
33.6k
    SCN_EXPECT(*begin == CharT{'['});
6660
6661
33.6k
    auto start = begin;
6662
33.6k
    ++begin;
6663
6664
33.6k
    if (SCN_UNLIKELY(begin == end)) {
6665
        // clang-format off
6666
88
        handler.on_error("Unexpected end of [character set] specifier in format string");
6667
        // clang-format on
6668
88
        return {};
6669
88
    }
6670
33.5k
    if (*begin == CharT{'^'}) {
6671
2.83k
        handler.on_charset_inverted();
6672
2.83k
        ++begin;
6673
2.83k
        if (SCN_UNLIKELY(begin == end)) {
6674
            // clang-format off
6675
62
            handler.on_error("Unexpected end of [character set] specifier in format string");
6676
            // clang-format on
6677
62
            return {};
6678
62
        }
6679
2.76k
        if (*begin == CharT{']'}) {
6680
94
            handler.on_charset_single(char32_t{']'});
6681
94
            ++begin;
6682
94
        }
6683
2.76k
    }
6684
30.7k
    else if (*begin == CharT{']'}) {
6685
124
        return {start, static_cast<size_t>(std::distance(start, ++begin))};
6686
124
    }
6687
6688
3.02M
    while (begin != end) {
6689
3.02M
        if (SCN_UNLIKELY(!handler)) {
6690
420
            break;
6691
420
        }
6692
6693
3.01M
        if (*begin == CharT{']'}) {
6694
32.1k
            return {start, static_cast<size_t>(std::distance(start, ++begin))};
6695
32.1k
        }
6696
6697
2.98M
        parse_presentation_set_literal(begin, end, handler);
6698
2.98M
    }
6699
6700
1.18k
    SCN_UNLIKELY_ATTR
6701
1.18k
    handler.on_error("Invalid [character set] specifier in format string");
6702
1.18k
    return {};
6703
33.3k
}
std::__1::basic_string_view<char, std::__1::char_traits<char> > scn::v3::detail::parse_presentation_set<char, scn::v3::impl::nonascii_specs_handler&>(char const*&, char const*, scn::v3::impl::nonascii_specs_handler&)
Line
Count
Source
6657
3.45k
{
6658
3.45k
    SCN_EXPECT(begin != end);
6659
3.45k
    SCN_EXPECT(*begin == CharT{'['});
6660
6661
3.45k
    auto start = begin;
6662
3.45k
    ++begin;
6663
6664
3.45k
    if (SCN_UNLIKELY(begin == end)) {
6665
        // clang-format off
6666
0
        handler.on_error("Unexpected end of [character set] specifier in format string");
6667
        // clang-format on
6668
0
        return {};
6669
0
    }
6670
3.45k
    if (*begin == CharT{'^'}) {
6671
408
        handler.on_charset_inverted();
6672
408
        ++begin;
6673
408
        if (SCN_UNLIKELY(begin == end)) {
6674
            // clang-format off
6675
0
            handler.on_error("Unexpected end of [character set] specifier in format string");
6676
            // clang-format on
6677
0
            return {};
6678
0
        }
6679
408
        if (*begin == CharT{']'}) {
6680
6
            handler.on_charset_single(char32_t{']'});
6681
6
            ++begin;
6682
6
        }
6683
408
    }
6684
3.04k
    else if (*begin == CharT{']'}) {
6685
0
        return {start, static_cast<size_t>(std::distance(start, ++begin))};
6686
0
    }
6687
6688
738k
    while (begin != end) {
6689
738k
        if (SCN_UNLIKELY(!handler)) {
6690
0
            break;
6691
0
        }
6692
6693
738k
        if (*begin == CharT{']'}) {
6694
3.45k
            return {start, static_cast<size_t>(std::distance(start, ++begin))};
6695
3.45k
        }
6696
6697
735k
        parse_presentation_set_literal(begin, end, handler);
6698
735k
    }
6699
6700
0
    SCN_UNLIKELY_ATTR
6701
0
    handler.on_error("Invalid [character set] specifier in format string");
6702
0
    return {};
6703
3.45k
}
Unexecuted instantiation: std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > scn::v3::detail::parse_presentation_set<wchar_t, scn::v3::impl::nonascii_specs_handler&>(wchar_t const*&, wchar_t const*, scn::v3::impl::nonascii_specs_handler&)
impl.cpp:std::__1::basic_string_view<char, std::__1::char_traits<char> > scn::v3::detail::parse_presentation_set<char, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<char> > >&>(char const*&, char const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<char> > >&)
Line
Count
Source
6657
17.8k
{
6658
17.8k
    SCN_EXPECT(begin != end);
6659
17.8k
    SCN_EXPECT(*begin == CharT{'['});
6660
6661
17.8k
    auto start = begin;
6662
17.8k
    ++begin;
6663
6664
17.8k
    if (SCN_UNLIKELY(begin == end)) {
6665
        // clang-format off
6666
42
        handler.on_error("Unexpected end of [character set] specifier in format string");
6667
        // clang-format on
6668
42
        return {};
6669
42
    }
6670
17.7k
    if (*begin == CharT{'^'}) {
6671
2.26k
        handler.on_charset_inverted();
6672
2.26k
        ++begin;
6673
2.26k
        if (SCN_UNLIKELY(begin == end)) {
6674
            // clang-format off
6675
34
            handler.on_error("Unexpected end of [character set] specifier in format string");
6676
            // clang-format on
6677
34
            return {};
6678
34
        }
6679
2.23k
        if (*begin == CharT{']'}) {
6680
54
            handler.on_charset_single(char32_t{']'});
6681
54
            ++begin;
6682
54
        }
6683
2.23k
    }
6684
15.4k
    else if (*begin == CharT{']'}) {
6685
34
        return {start, static_cast<size_t>(std::distance(start, ++begin))};
6686
34
    }
6687
6688
2.24M
    while (begin != end) {
6689
2.24M
        if (SCN_UNLIKELY(!handler)) {
6690
214
            break;
6691
214
        }
6692
6693
2.24M
        if (*begin == CharT{']'}) {
6694
16.9k
            return {start, static_cast<size_t>(std::distance(start, ++begin))};
6695
16.9k
        }
6696
6697
2.22M
        parse_presentation_set_literal(begin, end, handler);
6698
2.22M
    }
6699
6700
740
    SCN_UNLIKELY_ATTR
6701
740
    handler.on_error("Invalid [character set] specifier in format string");
6702
740
    return {};
6703
17.6k
}
impl.cpp:std::__1::basic_string_view<char, std::__1::char_traits<char> > scn::v3::detail::parse_presentation_set<char, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<char> > >&>(char const*&, char const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<char> > >&)
Line
Count
Source
6657
2.36k
{
6658
2.36k
    SCN_EXPECT(begin != end);
6659
2.36k
    SCN_EXPECT(*begin == CharT{'['});
6660
6661
2.36k
    auto start = begin;
6662
2.36k
    ++begin;
6663
6664
2.36k
    if (SCN_UNLIKELY(begin == end)) {
6665
        // clang-format off
6666
0
        handler.on_error("Unexpected end of [character set] specifier in format string");
6667
        // clang-format on
6668
0
        return {};
6669
0
    }
6670
2.36k
    if (*begin == CharT{'^'}) {
6671
0
        handler.on_charset_inverted();
6672
0
        ++begin;
6673
0
        if (SCN_UNLIKELY(begin == end)) {
6674
            // clang-format off
6675
0
            handler.on_error("Unexpected end of [character set] specifier in format string");
6676
            // clang-format on
6677
0
            return {};
6678
0
        }
6679
0
        if (*begin == CharT{']'}) {
6680
0
            handler.on_charset_single(char32_t{']'});
6681
0
            ++begin;
6682
0
        }
6683
0
    }
6684
2.36k
    else if (*begin == CharT{']'}) {
6685
0
        return {start, static_cast<size_t>(std::distance(start, ++begin))};
6686
0
    }
6687
6688
7.09k
    while (begin != end) {
6689
7.09k
        if (SCN_UNLIKELY(!handler)) {
6690
0
            break;
6691
0
        }
6692
6693
7.09k
        if (*begin == CharT{']'}) {
6694
2.36k
            return {start, static_cast<size_t>(std::distance(start, ++begin))};
6695
2.36k
        }
6696
6697
4.72k
        parse_presentation_set_literal(begin, end, handler);
6698
4.72k
    }
6699
6700
0
    SCN_UNLIKELY_ATTR
6701
0
    handler.on_error("Invalid [character set] specifier in format string");
6702
0
    return {};
6703
2.36k
}
impl.cpp:std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > scn::v3::detail::parse_presentation_set<wchar_t, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<wchar_t> > >&>(wchar_t const*&, wchar_t const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<wchar_t> > >&)
Line
Count
Source
6657
6.93k
{
6658
6.93k
    SCN_EXPECT(begin != end);
6659
6.93k
    SCN_EXPECT(*begin == CharT{'['});
6660
6661
6.93k
    auto start = begin;
6662
6.93k
    ++begin;
6663
6664
6.93k
    if (SCN_UNLIKELY(begin == end)) {
6665
        // clang-format off
6666
46
        handler.on_error("Unexpected end of [character set] specifier in format string");
6667
        // clang-format on
6668
46
        return {};
6669
46
    }
6670
6.88k
    if (*begin == CharT{'^'}) {
6671
158
        handler.on_charset_inverted();
6672
158
        ++begin;
6673
158
        if (SCN_UNLIKELY(begin == end)) {
6674
            // clang-format off
6675
28
            handler.on_error("Unexpected end of [character set] specifier in format string");
6676
            // clang-format on
6677
28
            return {};
6678
28
        }
6679
130
        if (*begin == CharT{']'}) {
6680
34
            handler.on_charset_single(char32_t{']'});
6681
34
            ++begin;
6682
34
        }
6683
130
    }
6684
6.72k
    else if (*begin == CharT{']'}) {
6685
90
        return {start, static_cast<size_t>(std::distance(start, ++begin))};
6686
90
    }
6687
6688
21.2k
    while (begin != end) {
6689
21.0k
        if (SCN_UNLIKELY(!handler)) {
6690
206
            break;
6691
206
        }
6692
6693
20.7k
        if (*begin == CharT{']'}) {
6694
6.31k
            return {start, static_cast<size_t>(std::distance(start, ++begin))};
6695
6.31k
        }
6696
6697
14.4k
        parse_presentation_set_literal(begin, end, handler);
6698
14.4k
    }
6699
6700
448
    SCN_UNLIKELY_ATTR
6701
448
    handler.on_error("Invalid [character set] specifier in format string");
6702
448
    return {};
6703
6.76k
}
impl.cpp:std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > scn::v3::detail::parse_presentation_set<wchar_t, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<wchar_t> > >&>(wchar_t const*&, wchar_t const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<wchar_t> > >&)
Line
Count
Source
6657
3.11k
{
6658
3.11k
    SCN_EXPECT(begin != end);
6659
3.11k
    SCN_EXPECT(*begin == CharT{'['});
6660
6661
3.11k
    auto start = begin;
6662
3.11k
    ++begin;
6663
6664
3.11k
    if (SCN_UNLIKELY(begin == end)) {
6665
        // clang-format off
6666
0
        handler.on_error("Unexpected end of [character set] specifier in format string");
6667
        // clang-format on
6668
0
        return {};
6669
0
    }
6670
3.11k
    if (*begin == CharT{'^'}) {
6671
0
        handler.on_charset_inverted();
6672
0
        ++begin;
6673
0
        if (SCN_UNLIKELY(begin == end)) {
6674
            // clang-format off
6675
0
            handler.on_error("Unexpected end of [character set] specifier in format string");
6676
            // clang-format on
6677
0
            return {};
6678
0
        }
6679
0
        if (*begin == CharT{']'}) {
6680
0
            handler.on_charset_single(char32_t{']'});
6681
0
            ++begin;
6682
0
        }
6683
0
    }
6684
3.11k
    else if (*begin == CharT{']'}) {
6685
0
        return {start, static_cast<size_t>(std::distance(start, ++begin))};
6686
0
    }
6687
6688
9.33k
    while (begin != end) {
6689
9.33k
        if (SCN_UNLIKELY(!handler)) {
6690
0
            break;
6691
0
        }
6692
6693
9.33k
        if (*begin == CharT{']'}) {
6694
3.11k
            return {start, static_cast<size_t>(std::distance(start, ++begin))};
6695
3.11k
        }
6696
6697
6.22k
        parse_presentation_set_literal(begin, end, handler);
6698
6.22k
    }
6699
6700
0
    SCN_UNLIKELY_ATTR
6701
0
    handler.on_error("Invalid [character set] specifier in format string");
6702
0
    return {};
6703
3.11k
}
6704
6705
template <typename CharT, typename SpecHandler>
6706
constexpr const CharT* parse_presentation_regex(const CharT*& begin,
6707
                                                const CharT* end,
6708
                                                SpecHandler&& handler)
6709
33.2k
{
6710
33.2k
#if !SCN_DISABLE_REGEX
6711
33.2k
    SCN_EXPECT(begin != end);
6712
33.2k
    SCN_EXPECT(*begin == CharT{'/'});
6713
6714
33.2k
    if constexpr (!SCN_REGEX_SUPPORTS_WIDE_STRINGS &&
6715
33.2k
                  std::is_same_v<CharT, wchar_t>) {
6716
33.2k
        handler.on_error("Regex backend doesn't support wide strings as input");
6717
33.2k
        return begin;
6718
33.2k
    }
6719
6720
33.2k
    auto start = begin;
6721
33.2k
    ++begin;
6722
6723
33.2k
    if (SCN_UNLIKELY(begin == end)) {
6724
80
        handler.on_error("Unexpected end of regex in format string");
6725
80
        return begin;
6726
80
    }
6727
6728
33.1k
    handler.on_type(presentation_type::regex);
6729
7.49M
    for (; begin != end; ++begin) {
6730
7.49M
        if (*begin == CharT{'/'}) {
6731
66.7k
            if (*(begin - 1) != CharT{'\\'}) {
6732
32.8k
                break;
6733
32.8k
            }
6734
33.9k
            else {
6735
33.9k
                handler.on_type(presentation_type::regex_escaped);
6736
33.9k
            }
6737
66.7k
        }
6738
7.49M
    }
6739
33.1k
    if (SCN_UNLIKELY(begin == end)) {
6740
328
        handler.on_error("Unexpected end of regex in format string");
6741
328
        return begin;
6742
328
    }
6743
6744
32.8k
    auto regex_end = begin;
6745
32.8k
    auto regex_pattern = make_string_view_from_pointers(start + 1, regex_end);
6746
32.8k
    if (SCN_UNLIKELY(regex_pattern.empty())) {
6747
84
        handler.on_error("Invalid (empty) regex in format string");
6748
84
        return begin;
6749
84
    }
6750
32.7k
    handler.on_regex_pattern(regex_pattern);
6751
32.7k
    ++begin;
6752
6753
32.7k
    if (SCN_UNLIKELY(begin == end)) {
6754
92
        handler.on_error("Unexpected end of regex in format string");
6755
92
        return begin;
6756
92
    }
6757
6758
32.6k
    regex_flags flags{regex_flags::none};
6759
32.6k
    constexpr std::array<std::pair<char, regex_flags>, 4> flag_map{
6760
32.6k
        {{'m', regex_flags::multiline},
6761
32.6k
         {'s', regex_flags::singleline},
6762
32.6k
         {'i', regex_flags::nocase},
6763
32.6k
         {'n', regex_flags::nocapture}}};
6764
37.7k
    for (; begin != end; ++begin) {
6765
37.6k
        if (*begin == CharT{'}'}) {
6766
32.3k
            break;
6767
32.3k
        }
6768
5.29k
        bool found_flag = false;
6769
14.3k
        for (auto flag : flag_map) {
6770
14.3k
            if (static_cast<CharT>(flag.first) != *begin) {
6771
9.25k
                continue;
6772
9.25k
            }
6773
5.11k
            if ((flags & flag.second) != regex_flags::none) {
6774
34
                handler.on_error("Flag set multiple times in regex");
6775
34
                return begin;
6776
34
            }
6777
5.08k
#if SCN_REGEX_BACKEND == SCN_REGEX_BACKEND_STD
6778
5.08k
            if (*begin == CharT{'s'}) {
6779
                // clang-format off
6780
48
                handler.on_error("/s flag for regex isn't supported by regex backend");
6781
                // clang-format on
6782
48
            }
6783
#if !SCN_HAS_STD_REGEX_MULTILINE
6784
            if (*begin == CharT{'m'}) {
6785
                // clang-format off
6786
                handler.on_error("/m flag for regex isn't supported by regex backend");
6787
                // clang-format on
6788
            }
6789
#endif
6790
5.08k
#endif
6791
5.08k
            flags |= flag.second;
6792
5.08k
            found_flag = true;
6793
5.08k
            break;
6794
5.11k
        }
6795
5.26k
        if (!found_flag) {
6796
182
            handler.on_error("Invalid flag in regex");
6797
182
            return begin;
6798
182
        }
6799
5.26k
    }
6800
32.4k
    handler.on_regex_flags(flags);
6801
6802
32.4k
    if (SCN_UNLIKELY(begin == end)) {
6803
58
        handler.on_error("Unexpected end of regex in format string");
6804
58
        return begin;
6805
58
    }
6806
6807
32.3k
    return begin;
6808
#else
6809
    handler.on_error("Regular expression support is disabled");
6810
    return {};
6811
#endif
6812
32.4k
}
impl.cpp:char const* scn::v3::detail::parse_presentation_regex<char, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<char> > >&>(char const*&, char const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<char> > >&)
Line
Count
Source
6709
32.8k
{
6710
32.8k
#if !SCN_DISABLE_REGEX
6711
32.8k
    SCN_EXPECT(begin != end);
6712
32.8k
    SCN_EXPECT(*begin == CharT{'/'});
6713
6714
32.8k
    if constexpr (!SCN_REGEX_SUPPORTS_WIDE_STRINGS &&
6715
32.8k
                  std::is_same_v<CharT, wchar_t>) {
6716
32.8k
        handler.on_error("Regex backend doesn't support wide strings as input");
6717
32.8k
        return begin;
6718
32.8k
    }
6719
6720
32.8k
    auto start = begin;
6721
32.8k
    ++begin;
6722
6723
32.8k
    if (SCN_UNLIKELY(begin == end)) {
6724
34
        handler.on_error("Unexpected end of regex in format string");
6725
34
        return begin;
6726
34
    }
6727
6728
32.8k
    handler.on_type(presentation_type::regex);
6729
7.49M
    for (; begin != end; ++begin) {
6730
7.49M
        if (*begin == CharT{'/'}) {
6731
66.5k
            if (*(begin - 1) != CharT{'\\'}) {
6732
32.5k
                break;
6733
32.5k
            }
6734
33.9k
            else {
6735
33.9k
                handler.on_type(presentation_type::regex_escaped);
6736
33.9k
            }
6737
66.5k
        }
6738
7.49M
    }
6739
32.8k
    if (SCN_UNLIKELY(begin == end)) {
6740
232
        handler.on_error("Unexpected end of regex in format string");
6741
232
        return begin;
6742
232
    }
6743
6744
32.5k
    auto regex_end = begin;
6745
32.5k
    auto regex_pattern = make_string_view_from_pointers(start + 1, regex_end);
6746
32.5k
    if (SCN_UNLIKELY(regex_pattern.empty())) {
6747
52
        handler.on_error("Invalid (empty) regex in format string");
6748
52
        return begin;
6749
52
    }
6750
32.5k
    handler.on_regex_pattern(regex_pattern);
6751
32.5k
    ++begin;
6752
6753
32.5k
    if (SCN_UNLIKELY(begin == end)) {
6754
34
        handler.on_error("Unexpected end of regex in format string");
6755
34
        return begin;
6756
34
    }
6757
6758
32.5k
    regex_flags flags{regex_flags::none};
6759
32.5k
    constexpr std::array<std::pair<char, regex_flags>, 4> flag_map{
6760
32.5k
        {{'m', regex_flags::multiline},
6761
32.5k
         {'s', regex_flags::singleline},
6762
32.5k
         {'i', regex_flags::nocase},
6763
32.5k
         {'n', regex_flags::nocapture}}};
6764
37.5k
    for (; begin != end; ++begin) {
6765
37.5k
        if (*begin == CharT{'}'}) {
6766
32.2k
            break;
6767
32.2k
        }
6768
5.24k
        bool found_flag = false;
6769
14.1k
        for (auto flag : flag_map) {
6770
14.1k
            if (static_cast<CharT>(flag.first) != *begin) {
6771
9.04k
                continue;
6772
9.04k
            }
6773
5.11k
            if ((flags & flag.second) != regex_flags::none) {
6774
34
                handler.on_error("Flag set multiple times in regex");
6775
34
                return begin;
6776
34
            }
6777
5.08k
#if SCN_REGEX_BACKEND == SCN_REGEX_BACKEND_STD
6778
5.08k
            if (*begin == CharT{'s'}) {
6779
                // clang-format off
6780
48
                handler.on_error("/s flag for regex isn't supported by regex backend");
6781
                // clang-format on
6782
48
            }
6783
#if !SCN_HAS_STD_REGEX_MULTILINE
6784
            if (*begin == CharT{'m'}) {
6785
                // clang-format off
6786
                handler.on_error("/m flag for regex isn't supported by regex backend");
6787
                // clang-format on
6788
            }
6789
#endif
6790
5.08k
#endif
6791
5.08k
            flags |= flag.second;
6792
5.08k
            found_flag = true;
6793
5.08k
            break;
6794
5.11k
        }
6795
5.21k
        if (!found_flag) {
6796
130
            handler.on_error("Invalid flag in regex");
6797
130
            return begin;
6798
130
        }
6799
5.21k
    }
6800
32.3k
    handler.on_regex_flags(flags);
6801
6802
32.3k
    if (SCN_UNLIKELY(begin == end)) {
6803
58
        handler.on_error("Unexpected end of regex in format string");
6804
58
        return begin;
6805
58
    }
6806
6807
32.2k
    return begin;
6808
#else
6809
    handler.on_error("Regular expression support is disabled");
6810
    return {};
6811
#endif
6812
32.3k
}
Unexecuted instantiation: impl.cpp:char const* scn::v3::detail::parse_presentation_regex<char, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<char> > >&>(char const*&, char const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<char> > >&)
impl.cpp:wchar_t const* scn::v3::detail::parse_presentation_regex<wchar_t, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<wchar_t> > >&>(wchar_t const*&, wchar_t const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<wchar_t> > >&)
Line
Count
Source
6709
356
{
6710
356
#if !SCN_DISABLE_REGEX
6711
356
    SCN_EXPECT(begin != end);
6712
356
    SCN_EXPECT(*begin == CharT{'/'});
6713
6714
356
    if constexpr (!SCN_REGEX_SUPPORTS_WIDE_STRINGS &&
6715
356
                  std::is_same_v<CharT, wchar_t>) {
6716
356
        handler.on_error("Regex backend doesn't support wide strings as input");
6717
356
        return begin;
6718
356
    }
6719
6720
356
    auto start = begin;
6721
356
    ++begin;
6722
6723
356
    if (SCN_UNLIKELY(begin == end)) {
6724
46
        handler.on_error("Unexpected end of regex in format string");
6725
46
        return begin;
6726
46
    }
6727
6728
310
    handler.on_type(presentation_type::regex);
6729
2.02k
    for (; begin != end; ++begin) {
6730
1.92k
        if (*begin == CharT{'/'}) {
6731
214
            if (*(begin - 1) != CharT{'\\'}) {
6732
214
                break;
6733
214
            }
6734
0
            else {
6735
0
                handler.on_type(presentation_type::regex_escaped);
6736
0
            }
6737
214
        }
6738
1.92k
    }
6739
310
    if (SCN_UNLIKELY(begin == end)) {
6740
96
        handler.on_error("Unexpected end of regex in format string");
6741
96
        return begin;
6742
96
    }
6743
6744
214
    auto regex_end = begin;
6745
214
    auto regex_pattern = make_string_view_from_pointers(start + 1, regex_end);
6746
214
    if (SCN_UNLIKELY(regex_pattern.empty())) {
6747
32
        handler.on_error("Invalid (empty) regex in format string");
6748
32
        return begin;
6749
32
    }
6750
182
    handler.on_regex_pattern(regex_pattern);
6751
182
    ++begin;
6752
6753
182
    if (SCN_UNLIKELY(begin == end)) {
6754
58
        handler.on_error("Unexpected end of regex in format string");
6755
58
        return begin;
6756
58
    }
6757
6758
124
    regex_flags flags{regex_flags::none};
6759
124
    constexpr std::array<std::pair<char, regex_flags>, 4> flag_map{
6760
124
        {{'m', regex_flags::multiline},
6761
124
         {'s', regex_flags::singleline},
6762
124
         {'i', regex_flags::nocase},
6763
124
         {'n', regex_flags::nocapture}}};
6764
124
    for (; begin != end; ++begin) {
6765
124
        if (*begin == CharT{'}'}) {
6766
72
            break;
6767
72
        }
6768
52
        bool found_flag = false;
6769
208
        for (auto flag : flag_map) {
6770
208
            if (static_cast<CharT>(flag.first) != *begin) {
6771
208
                continue;
6772
208
            }
6773
0
            if ((flags & flag.second) != regex_flags::none) {
6774
0
                handler.on_error("Flag set multiple times in regex");
6775
0
                return begin;
6776
0
            }
6777
0
#if SCN_REGEX_BACKEND == SCN_REGEX_BACKEND_STD
6778
0
            if (*begin == CharT{'s'}) {
6779
                // clang-format off
6780
0
                handler.on_error("/s flag for regex isn't supported by regex backend");
6781
                // clang-format on
6782
0
            }
6783
#if !SCN_HAS_STD_REGEX_MULTILINE
6784
            if (*begin == CharT{'m'}) {
6785
                // clang-format off
6786
                handler.on_error("/m flag for regex isn't supported by regex backend");
6787
                // clang-format on
6788
            }
6789
#endif
6790
0
#endif
6791
0
            flags |= flag.second;
6792
0
            found_flag = true;
6793
0
            break;
6794
0
        }
6795
52
        if (!found_flag) {
6796
52
            handler.on_error("Invalid flag in regex");
6797
52
            return begin;
6798
52
        }
6799
52
    }
6800
72
    handler.on_regex_flags(flags);
6801
6802
72
    if (SCN_UNLIKELY(begin == end)) {
6803
0
        handler.on_error("Unexpected end of regex in format string");
6804
0
        return begin;
6805
0
    }
6806
6807
72
    return begin;
6808
#else
6809
    handler.on_error("Regular expression support is disabled");
6810
    return {};
6811
#endif
6812
72
}
Unexecuted instantiation: impl.cpp:wchar_t const* scn::v3::detail::parse_presentation_regex<wchar_t, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<wchar_t> > >&>(wchar_t const*&, wchar_t const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<wchar_t> > >&)
6813
6814
template <typename CharT, typename SpecHandler>
6815
constexpr const CharT* parse_format_specs(const CharT* begin,
6816
                                          const CharT* end,
6817
                                          SpecHandler&& handler)
6818
32.0M
{
6819
32.0M
    auto do_presentation = [&]() -> const CharT* {
6820
30.1M
        if (*begin == CharT{'['}) {
6821
30.2k
            auto set = parse_presentation_set(begin, end, handler);
6822
30.2k
            if (SCN_UNLIKELY(set.size() <= 2)) {
6823
                // clang-format off
6824
1.46k
                handler.on_error("Invalid (empty) [character set] specifier in format string");
6825
                // clang-format on
6826
1.46k
                return begin;
6827
1.46k
            }
6828
28.7k
            handler.on_character_set_string(set);
6829
28.7k
            return begin;
6830
30.2k
        }
6831
30.1M
        if (*begin == CharT{'/'}) {
6832
33.2k
            return parse_presentation_regex(begin, end, handler);
6833
33.2k
        }
6834
30.1M
        presentation_type type = parse_presentation_type(*begin++);
6835
30.1M
        if (SCN_UNLIKELY(type == presentation_type::none)) {
6836
295k
            handler.on_error("Invalid type specifier in format string");
6837
295k
            return begin;
6838
295k
        }
6839
29.8M
        handler.on_type(type);
6840
29.8M
        return begin;
6841
30.1M
    };
impl.cpp:scn::v3::detail::parse_format_specs<char, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<char> > >&>(char const*, char const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<char> > >&)::{lambda()#1}::operator()() const
Line
Count
Source
6819
2.79M
    auto do_presentation = [&]() -> const CharT* {
6820
2.79M
        if (*begin == CharT{'['}) {
6821
17.8k
            auto set = parse_presentation_set(begin, end, handler);
6822
17.8k
            if (SCN_UNLIKELY(set.size() <= 2)) {
6823
                // clang-format off
6824
850
                handler.on_error("Invalid (empty) [character set] specifier in format string");
6825
                // clang-format on
6826
850
                return begin;
6827
850
            }
6828
16.9k
            handler.on_character_set_string(set);
6829
16.9k
            return begin;
6830
17.8k
        }
6831
2.78M
        if (*begin == CharT{'/'}) {
6832
32.8k
            return parse_presentation_regex(begin, end, handler);
6833
32.8k
        }
6834
2.74M
        presentation_type type = parse_presentation_type(*begin++);
6835
2.74M
        if (SCN_UNLIKELY(type == presentation_type::none)) {
6836
50.4k
            handler.on_error("Invalid type specifier in format string");
6837
50.4k
            return begin;
6838
50.4k
        }
6839
2.69M
        handler.on_type(type);
6840
2.69M
        return begin;
6841
2.74M
    };
impl.cpp:scn::v3::detail::parse_format_specs<char, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<char> > >&>(char const*, char const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<char> > >&)::{lambda()#1}::operator()() const
Line
Count
Source
6819
2.72M
    auto do_presentation = [&]() -> const CharT* {
6820
2.72M
        if (*begin == CharT{'['}) {
6821
2.36k
            auto set = parse_presentation_set(begin, end, handler);
6822
2.36k
            if (SCN_UNLIKELY(set.size() <= 2)) {
6823
                // clang-format off
6824
0
                handler.on_error("Invalid (empty) [character set] specifier in format string");
6825
                // clang-format on
6826
0
                return begin;
6827
0
            }
6828
2.36k
            handler.on_character_set_string(set);
6829
2.36k
            return begin;
6830
2.36k
        }
6831
2.71M
        if (*begin == CharT{'/'}) {
6832
0
            return parse_presentation_regex(begin, end, handler);
6833
0
        }
6834
2.71M
        presentation_type type = parse_presentation_type(*begin++);
6835
2.71M
        if (SCN_UNLIKELY(type == presentation_type::none)) {
6836
48.2k
            handler.on_error("Invalid type specifier in format string");
6837
48.2k
            return begin;
6838
48.2k
        }
6839
2.67M
        handler.on_type(type);
6840
2.67M
        return begin;
6841
2.71M
    };
impl.cpp:scn::v3::detail::parse_format_specs<wchar_t, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<wchar_t> > >&>(wchar_t const*, wchar_t const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<wchar_t> > >&)::{lambda()#1}::operator()() const
Line
Count
Source
6819
16.2M
    auto do_presentation = [&]() -> const CharT* {
6820
16.2M
        if (*begin == CharT{'['}) {
6821
6.93k
            auto set = parse_presentation_set(begin, end, handler);
6822
6.93k
            if (SCN_UNLIKELY(set.size() <= 2)) {
6823
                // clang-format off
6824
612
                handler.on_error("Invalid (empty) [character set] specifier in format string");
6825
                // clang-format on
6826
612
                return begin;
6827
612
            }
6828
6.31k
            handler.on_character_set_string(set);
6829
6.31k
            return begin;
6830
6.93k
        }
6831
16.2M
        if (*begin == CharT{'/'}) {
6832
356
            return parse_presentation_regex(begin, end, handler);
6833
356
        }
6834
16.2M
        presentation_type type = parse_presentation_type(*begin++);
6835
16.2M
        if (SCN_UNLIKELY(type == presentation_type::none)) {
6836
100k
            handler.on_error("Invalid type specifier in format string");
6837
100k
            return begin;
6838
100k
        }
6839
16.1M
        handler.on_type(type);
6840
16.1M
        return begin;
6841
16.2M
    };
impl.cpp:scn::v3::detail::parse_format_specs<wchar_t, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<wchar_t> > >&>(wchar_t const*, wchar_t const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<wchar_t> > >&)::{lambda()#1}::operator()() const
Line
Count
Source
6819
8.39M
    auto do_presentation = [&]() -> const CharT* {
6820
8.39M
        if (*begin == CharT{'['}) {
6821
3.11k
            auto set = parse_presentation_set(begin, end, handler);
6822
3.11k
            if (SCN_UNLIKELY(set.size() <= 2)) {
6823
                // clang-format off
6824
0
                handler.on_error("Invalid (empty) [character set] specifier in format string");
6825
                // clang-format on
6826
0
                return begin;
6827
0
            }
6828
3.11k
            handler.on_character_set_string(set);
6829
3.11k
            return begin;
6830
3.11k
        }
6831
8.39M
        if (*begin == CharT{'/'}) {
6832
0
            return parse_presentation_regex(begin, end, handler);
6833
0
        }
6834
8.39M
        presentation_type type = parse_presentation_type(*begin++);
6835
8.39M
        if (SCN_UNLIKELY(type == presentation_type::none)) {
6836
96.4k
            handler.on_error("Invalid type specifier in format string");
6837
96.4k
            return begin;
6838
96.4k
        }
6839
8.29M
        handler.on_type(type);
6840
8.29M
        return begin;
6841
8.39M
    };
6842
6843
32.0M
    if (end - begin > 1 && *(begin + 1) == CharT{'}'} &&
6844
32.0M
        is_ascii_letter(*begin) && *begin != CharT{'L'}) {
6845
29.6M
        return do_presentation();
6846
29.6M
    }
6847
6848
2.34M
    if (SCN_UNLIKELY(begin == end)) {
6849
0
        handler.on_error("Unexpected end of format string");
6850
0
        return begin;
6851
0
    }
6852
6853
2.34M
    begin = parse_align(begin, end, handler);
6854
2.34M
    if (SCN_UNLIKELY(begin == end)) {
6855
248
        handler.on_error("Unexpected end of format string");
6856
248
        return begin;
6857
248
    }
6858
6859
2.34M
    begin = parse_width(begin, end, handler);
6860
2.34M
    if (SCN_UNLIKELY(begin == end)) {
6861
202
        handler.on_error("Unexpected end of format string");
6862
202
        return begin;
6863
202
    }
6864
6865
2.34M
    if (*begin == CharT{'.'}) {
6866
8.69k
        ++begin;
6867
8.69k
        if (SCN_UNLIKELY(begin == end)) {
6868
74
            handler.on_error("Unexpected end of format string");
6869
74
            return begin;
6870
74
        }
6871
8.62k
        begin = parse_precision(begin, end, handler);
6872
8.62k
        if (SCN_UNLIKELY(begin == end)) {
6873
186
            handler.on_error("Unexpected end of format string");
6874
186
            return begin;
6875
186
        }
6876
8.62k
    }
6877
6878
2.34M
    if (*begin == CharT{'L'}) {
6879
1.81M
        handler.on_localized();
6880
1.81M
        ++begin;
6881
1.81M
    }
6882
2.34M
    if (SCN_UNLIKELY(begin == end)) {
6883
118
        handler.on_error("Unexpected end of format string");
6884
118
        return begin;
6885
118
    }
6886
6887
2.34M
    if (begin != end && *begin != CharT{'}'}) {
6888
516k
        do_presentation();
6889
516k
    }
6890
2.34M
    if (SCN_UNLIKELY(begin == end)) {
6891
3.66k
        handler.on_error("Unexpected end of format string");
6892
3.66k
        return begin;
6893
3.66k
    }
6894
6895
2.34M
    return begin;
6896
2.34M
}
impl.cpp:char const* scn::v3::detail::parse_format_specs<char, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<char> > >&>(char const*, char const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<char> > >&)
Line
Count
Source
6818
3.61M
{
6819
3.61M
    auto do_presentation = [&]() -> const CharT* {
6820
3.61M
        if (*begin == CharT{'['}) {
6821
3.61M
            auto set = parse_presentation_set(begin, end, handler);
6822
3.61M
            if (SCN_UNLIKELY(set.size() <= 2)) {
6823
                // clang-format off
6824
3.61M
                handler.on_error("Invalid (empty) [character set] specifier in format string");
6825
                // clang-format on
6826
3.61M
                return begin;
6827
3.61M
            }
6828
3.61M
            handler.on_character_set_string(set);
6829
3.61M
            return begin;
6830
3.61M
        }
6831
3.61M
        if (*begin == CharT{'/'}) {
6832
3.61M
            return parse_presentation_regex(begin, end, handler);
6833
3.61M
        }
6834
3.61M
        presentation_type type = parse_presentation_type(*begin++);
6835
3.61M
        if (SCN_UNLIKELY(type == presentation_type::none)) {
6836
3.61M
            handler.on_error("Invalid type specifier in format string");
6837
3.61M
            return begin;
6838
3.61M
        }
6839
3.61M
        handler.on_type(type);
6840
3.61M
        return begin;
6841
3.61M
    };
6842
6843
3.61M
    if (end - begin > 1 && *(begin + 1) == CharT{'}'} &&
6844
3.61M
        is_ascii_letter(*begin) && *begin != CharT{'L'}) {
6845
2.66M
        return do_presentation();
6846
2.66M
    }
6847
6848
943k
    if (SCN_UNLIKELY(begin == end)) {
6849
0
        handler.on_error("Unexpected end of format string");
6850
0
        return begin;
6851
0
    }
6852
6853
943k
    begin = parse_align(begin, end, handler);
6854
943k
    if (SCN_UNLIKELY(begin == end)) {
6855
118
        handler.on_error("Unexpected end of format string");
6856
118
        return begin;
6857
118
    }
6858
6859
943k
    begin = parse_width(begin, end, handler);
6860
943k
    if (SCN_UNLIKELY(begin == end)) {
6861
120
        handler.on_error("Unexpected end of format string");
6862
120
        return begin;
6863
120
    }
6864
6865
943k
    if (*begin == CharT{'.'}) {
6866
8.34k
        ++begin;
6867
8.34k
        if (SCN_UNLIKELY(begin == end)) {
6868
34
            handler.on_error("Unexpected end of format string");
6869
34
            return begin;
6870
34
        }
6871
8.31k
        begin = parse_precision(begin, end, handler);
6872
8.31k
        if (SCN_UNLIKELY(begin == end)) {
6873
84
            handler.on_error("Unexpected end of format string");
6874
84
            return begin;
6875
84
        }
6876
8.31k
    }
6877
6878
943k
    if (*begin == CharT{'L'}) {
6879
807k
        handler.on_localized();
6880
807k
        ++begin;
6881
807k
    }
6882
943k
    if (SCN_UNLIKELY(begin == end)) {
6883
52
        handler.on_error("Unexpected end of format string");
6884
52
        return begin;
6885
52
    }
6886
6887
943k
    if (begin != end && *begin != CharT{'}'}) {
6888
130k
        do_presentation();
6889
130k
    }
6890
943k
    if (SCN_UNLIKELY(begin == end)) {
6891
2.06k
        handler.on_error("Unexpected end of format string");
6892
2.06k
        return begin;
6893
2.06k
    }
6894
6895
941k
    return begin;
6896
943k
}
impl.cpp:char const* scn::v3::detail::parse_format_specs<char, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<char> > >&>(char const*, char const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<char> > >&)
Line
Count
Source
6818
3.54M
{
6819
3.54M
    auto do_presentation = [&]() -> const CharT* {
6820
3.54M
        if (*begin == CharT{'['}) {
6821
3.54M
            auto set = parse_presentation_set(begin, end, handler);
6822
3.54M
            if (SCN_UNLIKELY(set.size() <= 2)) {
6823
                // clang-format off
6824
3.54M
                handler.on_error("Invalid (empty) [character set] specifier in format string");
6825
                // clang-format on
6826
3.54M
                return begin;
6827
3.54M
            }
6828
3.54M
            handler.on_character_set_string(set);
6829
3.54M
            return begin;
6830
3.54M
        }
6831
3.54M
        if (*begin == CharT{'/'}) {
6832
3.54M
            return parse_presentation_regex(begin, end, handler);
6833
3.54M
        }
6834
3.54M
        presentation_type type = parse_presentation_type(*begin++);
6835
3.54M
        if (SCN_UNLIKELY(type == presentation_type::none)) {
6836
3.54M
            handler.on_error("Invalid type specifier in format string");
6837
3.54M
            return begin;
6838
3.54M
        }
6839
3.54M
        handler.on_type(type);
6840
3.54M
        return begin;
6841
3.54M
    };
6842
6843
3.54M
    if (end - begin > 1 && *(begin + 1) == CharT{'}'} &&
6844
3.54M
        is_ascii_letter(*begin) && *begin != CharT{'L'}) {
6845
2.64M
        return do_presentation();
6846
2.64M
    }
6847
6848
894k
    if (SCN_UNLIKELY(begin == end)) {
6849
0
        handler.on_error("Unexpected end of format string");
6850
0
        return begin;
6851
0
    }
6852
6853
894k
    begin = parse_align(begin, end, handler);
6854
894k
    if (SCN_UNLIKELY(begin == end)) {
6855
0
        handler.on_error("Unexpected end of format string");
6856
0
        return begin;
6857
0
    }
6858
6859
894k
    begin = parse_width(begin, end, handler);
6860
894k
    if (SCN_UNLIKELY(begin == end)) {
6861
0
        handler.on_error("Unexpected end of format string");
6862
0
        return begin;
6863
0
    }
6864
6865
894k
    if (*begin == CharT{'.'}) {
6866
0
        ++begin;
6867
0
        if (SCN_UNLIKELY(begin == end)) {
6868
0
            handler.on_error("Unexpected end of format string");
6869
0
            return begin;
6870
0
        }
6871
0
        begin = parse_precision(begin, end, handler);
6872
0
        if (SCN_UNLIKELY(begin == end)) {
6873
0
            handler.on_error("Unexpected end of format string");
6874
0
            return begin;
6875
0
        }
6876
0
    }
6877
6878
894k
    if (*begin == CharT{'L'}) {
6879
819k
        handler.on_localized();
6880
819k
        ++begin;
6881
819k
    }
6882
894k
    if (SCN_UNLIKELY(begin == end)) {
6883
0
        handler.on_error("Unexpected end of format string");
6884
0
        return begin;
6885
0
    }
6886
6887
894k
    if (begin != end && *begin != CharT{'}'}) {
6888
75.4k
        do_presentation();
6889
75.4k
    }
6890
894k
    if (SCN_UNLIKELY(begin == end)) {
6891
0
        handler.on_error("Unexpected end of format string");
6892
0
        return begin;
6893
0
    }
6894
6895
894k
    return begin;
6896
894k
}
impl.cpp:wchar_t const* scn::v3::detail::parse_format_specs<wchar_t, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<wchar_t> > >&>(wchar_t const*, wchar_t const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<wchar_t> > >&)
Line
Count
Source
6818
16.3M
{
6819
16.3M
    auto do_presentation = [&]() -> const CharT* {
6820
16.3M
        if (*begin == CharT{'['}) {
6821
16.3M
            auto set = parse_presentation_set(begin, end, handler);
6822
16.3M
            if (SCN_UNLIKELY(set.size() <= 2)) {
6823
                // clang-format off
6824
16.3M
                handler.on_error("Invalid (empty) [character set] specifier in format string");
6825
                // clang-format on
6826
16.3M
                return begin;
6827
16.3M
            }
6828
16.3M
            handler.on_character_set_string(set);
6829
16.3M
            return begin;
6830
16.3M
        }
6831
16.3M
        if (*begin == CharT{'/'}) {
6832
16.3M
            return parse_presentation_regex(begin, end, handler);
6833
16.3M
        }
6834
16.3M
        presentation_type type = parse_presentation_type(*begin++);
6835
16.3M
        if (SCN_UNLIKELY(type == presentation_type::none)) {
6836
16.3M
            handler.on_error("Invalid type specifier in format string");
6837
16.3M
            return begin;
6838
16.3M
        }
6839
16.3M
        handler.on_type(type);
6840
16.3M
        return begin;
6841
16.3M
    };
6842
6843
16.3M
    if (end - begin > 1 && *(begin + 1) == CharT{'}'} &&
6844
16.3M
        is_ascii_letter(*begin) && *begin != CharT{'L'}) {
6845
16.0M
        return do_presentation();
6846
16.0M
    }
6847
6848
263k
    if (SCN_UNLIKELY(begin == end)) {
6849
0
        handler.on_error("Unexpected end of format string");
6850
0
        return begin;
6851
0
    }
6852
6853
263k
    begin = parse_align(begin, end, handler);
6854
263k
    if (SCN_UNLIKELY(begin == end)) {
6855
130
        handler.on_error("Unexpected end of format string");
6856
130
        return begin;
6857
130
    }
6858
6859
262k
    begin = parse_width(begin, end, handler);
6860
262k
    if (SCN_UNLIKELY(begin == end)) {
6861
82
        handler.on_error("Unexpected end of format string");
6862
82
        return begin;
6863
82
    }
6864
6865
262k
    if (*begin == CharT{'.'}) {
6866
348
        ++begin;
6867
348
        if (SCN_UNLIKELY(begin == end)) {
6868
40
            handler.on_error("Unexpected end of format string");
6869
40
            return begin;
6870
40
        }
6871
308
        begin = parse_precision(begin, end, handler);
6872
308
        if (SCN_UNLIKELY(begin == end)) {
6873
102
            handler.on_error("Unexpected end of format string");
6874
102
            return begin;
6875
102
        }
6876
308
    }
6877
6878
262k
    if (*begin == CharT{'L'}) {
6879
97.8k
        handler.on_localized();
6880
97.8k
        ++begin;
6881
97.8k
    }
6882
262k
    if (SCN_UNLIKELY(begin == end)) {
6883
66
        handler.on_error("Unexpected end of format string");
6884
66
        return begin;
6885
66
    }
6886
6887
262k
    if (begin != end && *begin != CharT{'}'}) {
6888
161k
        do_presentation();
6889
161k
    }
6890
262k
    if (SCN_UNLIKELY(begin == end)) {
6891
1.60k
        handler.on_error("Unexpected end of format string");
6892
1.60k
        return begin;
6893
1.60k
    }
6894
6895
261k
    return begin;
6896
262k
}
impl.cpp:wchar_t const* scn::v3::detail::parse_format_specs<wchar_t, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<wchar_t> > >&>(wchar_t const*, wchar_t const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<wchar_t> > >&)
Line
Count
Source
6818
8.49M
{
6819
8.49M
    auto do_presentation = [&]() -> const CharT* {
6820
8.49M
        if (*begin == CharT{'['}) {
6821
8.49M
            auto set = parse_presentation_set(begin, end, handler);
6822
8.49M
            if (SCN_UNLIKELY(set.size() <= 2)) {
6823
                // clang-format off
6824
8.49M
                handler.on_error("Invalid (empty) [character set] specifier in format string");
6825
                // clang-format on
6826
8.49M
                return begin;
6827
8.49M
            }
6828
8.49M
            handler.on_character_set_string(set);
6829
8.49M
            return begin;
6830
8.49M
        }
6831
8.49M
        if (*begin == CharT{'/'}) {
6832
8.49M
            return parse_presentation_regex(begin, end, handler);
6833
8.49M
        }
6834
8.49M
        presentation_type type = parse_presentation_type(*begin++);
6835
8.49M
        if (SCN_UNLIKELY(type == presentation_type::none)) {
6836
8.49M
            handler.on_error("Invalid type specifier in format string");
6837
8.49M
            return begin;
6838
8.49M
        }
6839
8.49M
        handler.on_type(type);
6840
8.49M
        return begin;
6841
8.49M
    };
6842
6843
8.49M
    if (end - begin > 1 && *(begin + 1) == CharT{'}'} &&
6844
8.49M
        is_ascii_letter(*begin) && *begin != CharT{'L'}) {
6845
8.24M
        return do_presentation();
6846
8.24M
    }
6847
6848
243k
    if (SCN_UNLIKELY(begin == end)) {
6849
0
        handler.on_error("Unexpected end of format string");
6850
0
        return begin;
6851
0
    }
6852
6853
243k
    begin = parse_align(begin, end, handler);
6854
243k
    if (SCN_UNLIKELY(begin == end)) {
6855
0
        handler.on_error("Unexpected end of format string");
6856
0
        return begin;
6857
0
    }
6858
6859
243k
    begin = parse_width(begin, end, handler);
6860
243k
    if (SCN_UNLIKELY(begin == end)) {
6861
0
        handler.on_error("Unexpected end of format string");
6862
0
        return begin;
6863
0
    }
6864
6865
243k
    if (*begin == CharT{'.'}) {
6866
0
        ++begin;
6867
0
        if (SCN_UNLIKELY(begin == end)) {
6868
0
            handler.on_error("Unexpected end of format string");
6869
0
            return begin;
6870
0
        }
6871
0
        begin = parse_precision(begin, end, handler);
6872
0
        if (SCN_UNLIKELY(begin == end)) {
6873
0
            handler.on_error("Unexpected end of format string");
6874
0
            return begin;
6875
0
        }
6876
0
    }
6877
6878
243k
    if (*begin == CharT{'L'}) {
6879
94.5k
        handler.on_localized();
6880
94.5k
        ++begin;
6881
94.5k
    }
6882
243k
    if (SCN_UNLIKELY(begin == end)) {
6883
0
        handler.on_error("Unexpected end of format string");
6884
0
        return begin;
6885
0
    }
6886
6887
243k
    if (begin != end && *begin != CharT{'}'}) {
6888
149k
        do_presentation();
6889
149k
    }
6890
243k
    if (SCN_UNLIKELY(begin == end)) {
6891
0
        handler.on_error("Unexpected end of format string");
6892
0
        return begin;
6893
0
    }
6894
6895
243k
    return begin;
6896
243k
}
6897
6898
template <typename CharT, typename Handler>
6899
constexpr const CharT* parse_replacement_field(const CharT* begin,
6900
                                               const CharT* end,
6901
                                               Handler& handler)
6902
32.1M
{
6903
32.1M
    struct id_adapter {
6904
32.1M
        constexpr void operator()()
6905
32.1M
        {
6906
31.9M
            arg_id = handler.on_arg_id();
6907
31.9M
        }
impl.cpp:scn::v3::detail::parse_replacement_field<char, scn::v3::(anonymous namespace)::format_handler<true, char> >(char const*, char const*, scn::v3::(anonymous namespace)::format_handler<true, char>&)::id_adapter::operator()()
Line
Count
Source
6905
3.60M
        {
6906
3.60M
            arg_id = handler.on_arg_id();
6907
3.60M
        }
impl.cpp:scn::v3::detail::parse_replacement_field<char, scn::v3::(anonymous namespace)::format_handler<false, char> >(char const*, char const*, scn::v3::(anonymous namespace)::format_handler<false, char>&)::id_adapter::operator()()
Line
Count
Source
6905
3.54M
        {
6906
3.54M
            arg_id = handler.on_arg_id();
6907
3.54M
        }
impl.cpp:scn::v3::detail::parse_replacement_field<wchar_t, scn::v3::(anonymous namespace)::format_handler<true, wchar_t> >(wchar_t const*, wchar_t const*, scn::v3::(anonymous namespace)::format_handler<true, wchar_t>&)::id_adapter::operator()()
Line
Count
Source
6905
16.3M
        {
6906
16.3M
            arg_id = handler.on_arg_id();
6907
16.3M
        }
impl.cpp:scn::v3::detail::parse_replacement_field<wchar_t, scn::v3::(anonymous namespace)::format_handler<false, wchar_t> >(wchar_t const*, wchar_t const*, scn::v3::(anonymous namespace)::format_handler<false, wchar_t>&)::id_adapter::operator()()
Line
Count
Source
6905
8.49M
        {
6906
8.49M
            arg_id = handler.on_arg_id();
6907
8.49M
        }
6908
32.1M
        constexpr void operator()(std::size_t id)
6909
32.1M
        {
6910
3.77k
            arg_id = handler.on_arg_id(id);
6911
3.77k
        }
impl.cpp:scn::v3::detail::parse_replacement_field<char, scn::v3::(anonymous namespace)::format_handler<true, char> >(char const*, char const*, scn::v3::(anonymous namespace)::format_handler<true, char>&)::id_adapter::operator()(unsigned long)
Line
Count
Source
6909
3.50k
        {
6910
3.50k
            arg_id = handler.on_arg_id(id);
6911
3.50k
        }
Unexecuted instantiation: impl.cpp:scn::v3::detail::parse_replacement_field<char, scn::v3::(anonymous namespace)::format_handler<false, char> >(char const*, char const*, scn::v3::(anonymous namespace)::format_handler<false, char>&)::id_adapter::operator()(unsigned long)
impl.cpp:scn::v3::detail::parse_replacement_field<wchar_t, scn::v3::(anonymous namespace)::format_handler<true, wchar_t> >(wchar_t const*, wchar_t const*, scn::v3::(anonymous namespace)::format_handler<true, wchar_t>&)::id_adapter::operator()(unsigned long)
Line
Count
Source
6909
270
        {
6910
270
            arg_id = handler.on_arg_id(id);
6911
270
        }
Unexecuted instantiation: impl.cpp:scn::v3::detail::parse_replacement_field<wchar_t, scn::v3::(anonymous namespace)::format_handler<false, wchar_t> >(wchar_t const*, wchar_t const*, scn::v3::(anonymous namespace)::format_handler<false, wchar_t>&)::id_adapter::operator()(unsigned long)
6912
6913
32.1M
        constexpr void on_error(const char* msg)
6914
32.1M
        {
6915
45.8k
            SCN_UNLIKELY_ATTR
6916
45.8k
            handler.on_error(msg);
6917
45.8k
        }
impl.cpp:scn::v3::detail::parse_replacement_field<char, scn::v3::(anonymous namespace)::format_handler<true, char> >(char const*, char const*, scn::v3::(anonymous namespace)::format_handler<true, char>&)::id_adapter::on_error(char const*)
Line
Count
Source
6914
11.9k
        {
6915
11.9k
            SCN_UNLIKELY_ATTR
6916
11.9k
            handler.on_error(msg);
6917
11.9k
        }
Unexecuted instantiation: impl.cpp:scn::v3::detail::parse_replacement_field<char, scn::v3::(anonymous namespace)::format_handler<false, char> >(char const*, char const*, scn::v3::(anonymous namespace)::format_handler<false, char>&)::id_adapter::on_error(char const*)
impl.cpp:scn::v3::detail::parse_replacement_field<wchar_t, scn::v3::(anonymous namespace)::format_handler<true, wchar_t> >(wchar_t const*, wchar_t const*, scn::v3::(anonymous namespace)::format_handler<true, wchar_t>&)::id_adapter::on_error(char const*)
Line
Count
Source
6914
33.9k
        {
6915
33.9k
            SCN_UNLIKELY_ATTR
6916
33.9k
            handler.on_error(msg);
6917
33.9k
        }
Unexecuted instantiation: impl.cpp:scn::v3::detail::parse_replacement_field<wchar_t, scn::v3::(anonymous namespace)::format_handler<false, wchar_t> >(wchar_t const*, wchar_t const*, scn::v3::(anonymous namespace)::format_handler<false, wchar_t>&)::id_adapter::on_error(char const*)
6918
6919
32.1M
        Handler& handler;
6920
32.1M
        std::size_t arg_id;
6921
32.1M
    };
6922
6923
32.1M
    ++begin;
6924
32.1M
    if (SCN_UNLIKELY(begin == end)) {
6925
148
        handler.on_error("Unexpected end of replacement field");
6926
148
        return begin;
6927
148
    }
6928
6929
32.1M
    if (*begin == CharT{'}'}) {
6930
86.7k
        handler.on_replacement_field(handler.on_arg_id(), begin);
6931
86.7k
    }
6932
32.0M
    else if (*begin == CharT{'{'}) {
6933
5.35k
        handler.on_literal_text(begin, begin + 1);
6934
5.35k
    }
6935
32.0M
    else {
6936
32.0M
        auto adapter = id_adapter{handler, 0};
6937
32.0M
        begin = parse_arg_id(begin, end, adapter);
6938
6939
32.0M
        if (SCN_UNLIKELY(begin == end)) {
6940
222
            handler.on_error("Missing '}' in format string");
6941
222
            return begin;
6942
222
        }
6943
6944
32.0M
        if (*begin == CharT{'}'}) {
6945
258
            handler.on_replacement_field(adapter.arg_id, begin);
6946
258
        }
6947
32.0M
        else if (*begin == CharT{':'}) {
6948
32.0M
            if (SCN_UNLIKELY(begin + 1 == end)) {
6949
116
                handler.on_error("Unexpected end of replacement field");
6950
116
                return begin;
6951
116
            }
6952
32.0M
            begin = handler.on_format_specs(adapter.arg_id, begin + 1, end);
6953
32.0M
            if (SCN_UNLIKELY(begin == end || *begin != '}')) {
6954
453k
                handler.on_error("Unknown format specifier");
6955
453k
                return begin;
6956
453k
            }
6957
32.0M
        }
6958
45.6k
        else {
6959
45.6k
            SCN_UNLIKELY_ATTR
6960
45.6k
            handler.on_error("Missing '}' in format string");
6961
45.6k
            return begin;
6962
45.6k
        }
6963
32.0M
    }
6964
31.6M
    return begin + 1;
6965
32.1M
}
impl.cpp:char const* scn::v3::detail::parse_replacement_field<char, scn::v3::(anonymous namespace)::format_handler<true, char> >(char const*, char const*, scn::v3::(anonymous namespace)::format_handler<true, char>&)
Line
Count
Source
6902
3.63M
{
6903
3.63M
    struct id_adapter {
6904
3.63M
        constexpr void operator()()
6905
3.63M
        {
6906
3.63M
            arg_id = handler.on_arg_id();
6907
3.63M
        }
6908
3.63M
        constexpr void operator()(std::size_t id)
6909
3.63M
        {
6910
3.63M
            arg_id = handler.on_arg_id(id);
6911
3.63M
        }
6912
6913
3.63M
        constexpr void on_error(const char* msg)
6914
3.63M
        {
6915
3.63M
            SCN_UNLIKELY_ATTR
6916
3.63M
            handler.on_error(msg);
6917
3.63M
        }
6918
6919
3.63M
        Handler& handler;
6920
3.63M
        std::size_t arg_id;
6921
3.63M
    };
6922
6923
3.63M
    ++begin;
6924
3.63M
    if (SCN_UNLIKELY(begin == end)) {
6925
76
        handler.on_error("Unexpected end of replacement field");
6926
76
        return begin;
6927
76
    }
6928
6929
3.63M
    if (*begin == CharT{'}'}) {
6930
5.92k
        handler.on_replacement_field(handler.on_arg_id(), begin);
6931
5.92k
    }
6932
3.62M
    else if (*begin == CharT{'{'}) {
6933
5.17k
        handler.on_literal_text(begin, begin + 1);
6934
5.17k
    }
6935
3.62M
    else {
6936
3.62M
        auto adapter = id_adapter{handler, 0};
6937
3.62M
        begin = parse_arg_id(begin, end, adapter);
6938
6939
3.62M
        if (SCN_UNLIKELY(begin == end)) {
6940
110
            handler.on_error("Missing '}' in format string");
6941
110
            return begin;
6942
110
        }
6943
6944
3.62M
        if (*begin == CharT{'}'}) {
6945
158
            handler.on_replacement_field(adapter.arg_id, begin);
6946
158
        }
6947
3.62M
        else if (*begin == CharT{':'}) {
6948
3.61M
            if (SCN_UNLIKELY(begin + 1 == end)) {
6949
74
                handler.on_error("Unexpected end of replacement field");
6950
74
                return begin;
6951
74
            }
6952
3.61M
            begin = handler.on_format_specs(adapter.arg_id, begin + 1, end);
6953
3.61M
            if (SCN_UNLIKELY(begin == end || *begin != '}')) {
6954
79.2k
                handler.on_error("Unknown format specifier");
6955
79.2k
                return begin;
6956
79.2k
            }
6957
3.61M
        }
6958
11.8k
        else {
6959
11.8k
            SCN_UNLIKELY_ATTR
6960
11.8k
            handler.on_error("Missing '}' in format string");
6961
11.8k
            return begin;
6962
11.8k
        }
6963
3.62M
    }
6964
3.54M
    return begin + 1;
6965
3.63M
}
impl.cpp:char const* scn::v3::detail::parse_replacement_field<char, scn::v3::(anonymous namespace)::format_handler<false, char> >(char const*, char const*, scn::v3::(anonymous namespace)::format_handler<false, char>&)
Line
Count
Source
6902
3.54M
{
6903
3.54M
    struct id_adapter {
6904
3.54M
        constexpr void operator()()
6905
3.54M
        {
6906
3.54M
            arg_id = handler.on_arg_id();
6907
3.54M
        }
6908
3.54M
        constexpr void operator()(std::size_t id)
6909
3.54M
        {
6910
3.54M
            arg_id = handler.on_arg_id(id);
6911
3.54M
        }
6912
6913
3.54M
        constexpr void on_error(const char* msg)
6914
3.54M
        {
6915
3.54M
            SCN_UNLIKELY_ATTR
6916
3.54M
            handler.on_error(msg);
6917
3.54M
        }
6918
6919
3.54M
        Handler& handler;
6920
3.54M
        std::size_t arg_id;
6921
3.54M
    };
6922
6923
3.54M
    ++begin;
6924
3.54M
    if (SCN_UNLIKELY(begin == end)) {
6925
0
        handler.on_error("Unexpected end of replacement field");
6926
0
        return begin;
6927
0
    }
6928
6929
3.54M
    if (*begin == CharT{'}'}) {
6930
0
        handler.on_replacement_field(handler.on_arg_id(), begin);
6931
0
    }
6932
3.54M
    else if (*begin == CharT{'{'}) {
6933
0
        handler.on_literal_text(begin, begin + 1);
6934
0
    }
6935
3.54M
    else {
6936
3.54M
        auto adapter = id_adapter{handler, 0};
6937
3.54M
        begin = parse_arg_id(begin, end, adapter);
6938
6939
3.54M
        if (SCN_UNLIKELY(begin == end)) {
6940
0
            handler.on_error("Missing '}' in format string");
6941
0
            return begin;
6942
0
        }
6943
6944
3.54M
        if (*begin == CharT{'}'}) {
6945
0
            handler.on_replacement_field(adapter.arg_id, begin);
6946
0
        }
6947
3.54M
        else if (*begin == CharT{':'}) {
6948
3.54M
            if (SCN_UNLIKELY(begin + 1 == end)) {
6949
0
                handler.on_error("Unexpected end of replacement field");
6950
0
                return begin;
6951
0
            }
6952
3.54M
            begin = handler.on_format_specs(adapter.arg_id, begin + 1, end);
6953
3.54M
            if (SCN_UNLIKELY(begin == end || *begin != '}')) {
6954
73.1k
                handler.on_error("Unknown format specifier");
6955
73.1k
                return begin;
6956
73.1k
            }
6957
3.54M
        }
6958
0
        else {
6959
0
            SCN_UNLIKELY_ATTR
6960
0
            handler.on_error("Missing '}' in format string");
6961
0
            return begin;
6962
0
        }
6963
3.54M
    }
6964
3.46M
    return begin + 1;
6965
3.54M
}
impl.cpp:wchar_t const* scn::v3::detail::parse_replacement_field<wchar_t, scn::v3::(anonymous namespace)::format_handler<true, wchar_t> >(wchar_t const*, wchar_t const*, scn::v3::(anonymous namespace)::format_handler<true, wchar_t>&)
Line
Count
Source
6902
16.4M
{
6903
16.4M
    struct id_adapter {
6904
16.4M
        constexpr void operator()()
6905
16.4M
        {
6906
16.4M
            arg_id = handler.on_arg_id();
6907
16.4M
        }
6908
16.4M
        constexpr void operator()(std::size_t id)
6909
16.4M
        {
6910
16.4M
            arg_id = handler.on_arg_id(id);
6911
16.4M
        }
6912
6913
16.4M
        constexpr void on_error(const char* msg)
6914
16.4M
        {
6915
16.4M
            SCN_UNLIKELY_ATTR
6916
16.4M
            handler.on_error(msg);
6917
16.4M
        }
6918
6919
16.4M
        Handler& handler;
6920
16.4M
        std::size_t arg_id;
6921
16.4M
    };
6922
6923
16.4M
    ++begin;
6924
16.4M
    if (SCN_UNLIKELY(begin == end)) {
6925
72
        handler.on_error("Unexpected end of replacement field");
6926
72
        return begin;
6927
72
    }
6928
6929
16.4M
    if (*begin == CharT{'}'}) {
6930
80.7k
        handler.on_replacement_field(handler.on_arg_id(), begin);
6931
80.7k
    }
6932
16.3M
    else if (*begin == CharT{'{'}) {
6933
180
        handler.on_literal_text(begin, begin + 1);
6934
180
    }
6935
16.3M
    else {
6936
16.3M
        auto adapter = id_adapter{handler, 0};
6937
16.3M
        begin = parse_arg_id(begin, end, adapter);
6938
6939
16.3M
        if (SCN_UNLIKELY(begin == end)) {
6940
112
            handler.on_error("Missing '}' in format string");
6941
112
            return begin;
6942
112
        }
6943
6944
16.3M
        if (*begin == CharT{'}'}) {
6945
100
            handler.on_replacement_field(adapter.arg_id, begin);
6946
100
        }
6947
16.3M
        else if (*begin == CharT{':'}) {
6948
16.3M
            if (SCN_UNLIKELY(begin + 1 == end)) {
6949
42
                handler.on_error("Unexpected end of replacement field");
6950
42
                return begin;
6951
42
            }
6952
16.3M
            begin = handler.on_format_specs(adapter.arg_id, begin + 1, end);
6953
16.3M
            if (SCN_UNLIKELY(begin == end || *begin != '}')) {
6954
154k
                handler.on_error("Unknown format specifier");
6955
154k
                return begin;
6956
154k
            }
6957
16.3M
        }
6958
33.8k
        else {
6959
33.8k
            SCN_UNLIKELY_ATTR
6960
33.8k
            handler.on_error("Missing '}' in format string");
6961
33.8k
            return begin;
6962
33.8k
        }
6963
16.3M
    }
6964
16.2M
    return begin + 1;
6965
16.4M
}
impl.cpp:wchar_t const* scn::v3::detail::parse_replacement_field<wchar_t, scn::v3::(anonymous namespace)::format_handler<false, wchar_t> >(wchar_t const*, wchar_t const*, scn::v3::(anonymous namespace)::format_handler<false, wchar_t>&)
Line
Count
Source
6902
8.49M
{
6903
8.49M
    struct id_adapter {
6904
8.49M
        constexpr void operator()()
6905
8.49M
        {
6906
8.49M
            arg_id = handler.on_arg_id();
6907
8.49M
        }
6908
8.49M
        constexpr void operator()(std::size_t id)
6909
8.49M
        {
6910
8.49M
            arg_id = handler.on_arg_id(id);
6911
8.49M
        }
6912
6913
8.49M
        constexpr void on_error(const char* msg)
6914
8.49M
        {
6915
8.49M
            SCN_UNLIKELY_ATTR
6916
8.49M
            handler.on_error(msg);
6917
8.49M
        }
6918
6919
8.49M
        Handler& handler;
6920
8.49M
        std::size_t arg_id;
6921
8.49M
    };
6922
6923
8.49M
    ++begin;
6924
8.49M
    if (SCN_UNLIKELY(begin == end)) {
6925
0
        handler.on_error("Unexpected end of replacement field");
6926
0
        return begin;
6927
0
    }
6928
6929
8.49M
    if (*begin == CharT{'}'}) {
6930
0
        handler.on_replacement_field(handler.on_arg_id(), begin);
6931
0
    }
6932
8.49M
    else if (*begin == CharT{'{'}) {
6933
0
        handler.on_literal_text(begin, begin + 1);
6934
0
    }
6935
8.49M
    else {
6936
8.49M
        auto adapter = id_adapter{handler, 0};
6937
8.49M
        begin = parse_arg_id(begin, end, adapter);
6938
6939
8.49M
        if (SCN_UNLIKELY(begin == end)) {
6940
0
            handler.on_error("Missing '}' in format string");
6941
0
            return begin;
6942
0
        }
6943
6944
8.49M
        if (*begin == CharT{'}'}) {
6945
0
            handler.on_replacement_field(adapter.arg_id, begin);
6946
0
        }
6947
8.49M
        else if (*begin == CharT{':'}) {
6948
8.49M
            if (SCN_UNLIKELY(begin + 1 == end)) {
6949
0
                handler.on_error("Unexpected end of replacement field");
6950
0
                return begin;
6951
0
            }
6952
8.49M
            begin = handler.on_format_specs(adapter.arg_id, begin + 1, end);
6953
8.49M
            if (SCN_UNLIKELY(begin == end || *begin != '}')) {
6954
146k
                handler.on_error("Unknown format specifier");
6955
146k
                return begin;
6956
146k
            }
6957
8.49M
        }
6958
0
        else {
6959
0
            SCN_UNLIKELY_ATTR
6960
0
            handler.on_error("Missing '}' in format string");
6961
0
            return begin;
6962
0
        }
6963
8.49M
    }
6964
8.34M
    return begin + 1;
6965
8.49M
}
6966
6967
template <bool IsConstexpr, typename CharT, typename Handler>
6968
constexpr void parse_format_string_impl(std::basic_string_view<CharT> format,
6969
                                        Handler&& handler)
6970
32.1M
{
6971
    // TODO: memchr fast path with a larger (> 32) format string
6972
6973
32.1M
    auto begin = format.data();
6974
32.1M
    auto it = begin;
6975
32.1M
    const auto end = format.data() + format.size();
6976
6977
374M
    while (it != end) {
6978
344M
        const auto ch = *it++;
6979
344M
        if (ch == CharT{'{'}) {
6980
32.1M
            handler.on_literal_text(begin, it - 1);
6981
6982
32.1M
            begin = it = parse_replacement_field(it - 1, end, handler);
6983
32.1M
            if (!handler) {
6984
2.02M
                return;
6985
2.02M
            }
6986
32.1M
        }
6987
311M
        else if (ch == CharT{'}'}) {
6988
3.53k
            if (SCN_UNLIKELY(it == end || *it != CharT{'}'})) {
6989
1.87k
                handler.on_error("Unmatched '}' in format string");
6990
1.87k
                return;
6991
1.87k
            }
6992
6993
1.66k
            handler.on_literal_text(begin, it);
6994
1.66k
            begin = ++it;
6995
1.66k
        }
6996
344M
    }
6997
6998
30.1M
    handler.on_literal_text(begin, end);
6999
30.1M
}
impl.cpp:void scn::v3::detail::parse_format_string_impl<false, char, scn::v3::(anonymous namespace)::format_handler<true, char>&>(std::__1::basic_string_view<char, std::__1::char_traits<char> >, scn::v3::(anonymous namespace)::format_handler<true, char>&)
Line
Count
Source
6970
3.63M
{
6971
    // TODO: memchr fast path with a larger (> 32) format string
6972
6973
3.63M
    auto begin = format.data();
6974
3.63M
    auto it = begin;
6975
3.63M
    const auto end = format.data() + format.size();
6976
6977
7.08M
    while (it != end) {
6978
3.83M
        const auto ch = *it++;
6979
3.83M
        if (ch == CharT{'{'}) {
6980
3.63M
            handler.on_literal_text(begin, it - 1);
6981
6982
3.63M
            begin = it = parse_replacement_field(it - 1, end, handler);
6983
3.63M
            if (!handler) {
6984
382k
                return;
6985
382k
            }
6986
3.63M
        }
6987
198k
        else if (ch == CharT{'}'}) {
6988
2.92k
            if (SCN_UNLIKELY(it == end || *it != CharT{'}'})) {
6989
1.45k
                handler.on_error("Unmatched '}' in format string");
6990
1.45k
                return;
6991
1.45k
            }
6992
6993
1.47k
            handler.on_literal_text(begin, it);
6994
1.47k
            begin = ++it;
6995
1.47k
        }
6996
3.83M
    }
6997
6998
3.24M
    handler.on_literal_text(begin, end);
6999
3.24M
}
impl.cpp:void scn::v3::detail::parse_format_string_impl<false, char, scn::v3::(anonymous namespace)::format_handler<false, char>&>(std::__1::basic_string_view<char, std::__1::char_traits<char> >, scn::v3::(anonymous namespace)::format_handler<false, char>&)
Line
Count
Source
6970
3.54M
{
6971
    // TODO: memchr fast path with a larger (> 32) format string
6972
6973
3.54M
    auto begin = format.data();
6974
3.54M
    auto it = begin;
6975
3.54M
    const auto end = format.data() + format.size();
6976
6977
6.77M
    while (it != end) {
6978
3.54M
        const auto ch = *it++;
6979
3.54M
        if (ch == CharT{'{'}) {
6980
3.54M
            handler.on_literal_text(begin, it - 1);
6981
6982
3.54M
            begin = it = parse_replacement_field(it - 1, end, handler);
6983
3.54M
            if (!handler) {
6984
307k
                return;
6985
307k
            }
6986
3.54M
        }
6987
0
        else if (ch == CharT{'}'}) {
6988
0
            if (SCN_UNLIKELY(it == end || *it != CharT{'}'})) {
6989
0
                handler.on_error("Unmatched '}' in format string");
6990
0
                return;
6991
0
            }
6992
6993
0
            handler.on_literal_text(begin, it);
6994
0
            begin = ++it;
6995
0
        }
6996
3.54M
    }
6997
6998
3.23M
    handler.on_literal_text(begin, end);
6999
3.23M
}
impl.cpp:void scn::v3::detail::parse_format_string_impl<false, wchar_t, scn::v3::(anonymous namespace)::format_handler<true, wchar_t>&>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >, scn::v3::(anonymous namespace)::format_handler<true, wchar_t>&)
Line
Count
Source
6970
16.5M
{
6971
    // TODO: memchr fast path with a larger (> 32) format string
6972
6973
16.5M
    auto begin = format.data();
6974
16.5M
    auto it = begin;
6975
16.5M
    const auto end = format.data() + format.size();
6976
6977
343M
    while (it != end) {
6978
328M
        const auto ch = *it++;
6979
328M
        if (ch == CharT{'{'}) {
6980
16.4M
            handler.on_literal_text(begin, it - 1);
6981
6982
16.4M
            begin = it = parse_replacement_field(it - 1, end, handler);
6983
16.4M
            if (!handler) {
6984
716k
                return;
6985
716k
            }
6986
16.4M
        }
6987
311M
        else if (ch == CharT{'}'}) {
6988
610
            if (SCN_UNLIKELY(it == end || *it != CharT{'}'})) {
6989
424
                handler.on_error("Unmatched '}' in format string");
6990
424
                return;
6991
424
            }
6992
6993
186
            handler.on_literal_text(begin, it);
6994
186
            begin = ++it;
6995
186
        }
6996
328M
    }
6997
6998
15.7M
    handler.on_literal_text(begin, end);
6999
15.7M
}
impl.cpp:void scn::v3::detail::parse_format_string_impl<false, wchar_t, scn::v3::(anonymous namespace)::format_handler<false, wchar_t>&>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >, scn::v3::(anonymous namespace)::format_handler<false, wchar_t>&)
Line
Count
Source
6970
8.49M
{
6971
    // TODO: memchr fast path with a larger (> 32) format string
6972
6973
8.49M
    auto begin = format.data();
6974
8.49M
    auto it = begin;
6975
8.49M
    const auto end = format.data() + format.size();
6976
6977
16.3M
    while (it != end) {
6978
8.49M
        const auto ch = *it++;
6979
8.49M
        if (ch == CharT{'{'}) {
6980
8.49M
            handler.on_literal_text(begin, it - 1);
6981
6982
8.49M
            begin = it = parse_replacement_field(it - 1, end, handler);
6983
8.49M
            if (!handler) {
6984
614k
                return;
6985
614k
            }
6986
8.49M
        }
6987
0
        else if (ch == CharT{'}'}) {
6988
0
            if (SCN_UNLIKELY(it == end || *it != CharT{'}'})) {
6989
0
                handler.on_error("Unmatched '}' in format string");
6990
0
                return;
6991
0
            }
6992
6993
0
            handler.on_literal_text(begin, it);
6994
0
            begin = ++it;
6995
0
        }
6996
8.49M
    }
6997
6998
7.87M
    handler.on_literal_text(begin, end);
6999
7.87M
}
7000
7001
template <bool IsConstexpr, typename CharT, typename Handler>
7002
constexpr scan_error parse_format_string(std::basic_string_view<CharT> format,
7003
                                         Handler&& handler)
7004
32.1M
{
7005
32.1M
    parse_format_string_impl<IsConstexpr>(format, handler);
7006
32.1M
    handler.check_args_exhausted();
7007
32.1M
    return handler.get_error();
7008
32.1M
}
impl.cpp:scn::v3::scan_error scn::v3::detail::parse_format_string<false, char, scn::v3::(anonymous namespace)::format_handler<true, char>&>(std::__1::basic_string_view<char, std::__1::char_traits<char> >, scn::v3::(anonymous namespace)::format_handler<true, char>&)
Line
Count
Source
7004
3.63M
{
7005
3.63M
    parse_format_string_impl<IsConstexpr>(format, handler);
7006
3.63M
    handler.check_args_exhausted();
7007
3.63M
    return handler.get_error();
7008
3.63M
}
impl.cpp:scn::v3::scan_error scn::v3::detail::parse_format_string<false, char, scn::v3::(anonymous namespace)::format_handler<false, char>&>(std::__1::basic_string_view<char, std::__1::char_traits<char> >, scn::v3::(anonymous namespace)::format_handler<false, char>&)
Line
Count
Source
7004
3.54M
{
7005
3.54M
    parse_format_string_impl<IsConstexpr>(format, handler);
7006
3.54M
    handler.check_args_exhausted();
7007
3.54M
    return handler.get_error();
7008
3.54M
}
impl.cpp:scn::v3::scan_error scn::v3::detail::parse_format_string<false, wchar_t, scn::v3::(anonymous namespace)::format_handler<true, wchar_t>&>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >, scn::v3::(anonymous namespace)::format_handler<true, wchar_t>&)
Line
Count
Source
7004
16.5M
{
7005
16.5M
    parse_format_string_impl<IsConstexpr>(format, handler);
7006
16.5M
    handler.check_args_exhausted();
7007
16.5M
    return handler.get_error();
7008
16.5M
}
impl.cpp:scn::v3::scan_error scn::v3::detail::parse_format_string<false, wchar_t, scn::v3::(anonymous namespace)::format_handler<false, wchar_t>&>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >, scn::v3::(anonymous namespace)::format_handler<false, wchar_t>&)
Line
Count
Source
7004
8.49M
{
7005
8.49M
    parse_format_string_impl<IsConstexpr>(format, handler);
7006
8.49M
    handler.check_args_exhausted();
7007
8.49M
    return handler.get_error();
7008
8.49M
}
7009
7010
enum class arg_type_category {
7011
    none,
7012
    integer,
7013
    unsigned_integer,
7014
    floating,
7015
    string,
7016
    pointer,
7017
    boolean,
7018
    character,
7019
    custom
7020
};
7021
7022
constexpr arg_type_category get_category_for_arg_type(arg_type type)
7023
1.81M
{
7024
1.81M
    switch (type) {
7025
168
        case arg_type::none_type:
7026
168
            return arg_type_category::none;
7027
7028
121k
        case arg_type::schar_type:
7029
121k
        case arg_type::short_type:
7030
258k
        case arg_type::int_type:
7031
258k
        case arg_type::long_type:
7032
398k
        case arg_type::llong_type:
7033
398k
            return arg_type_category::integer;
7034
7035
109k
        case arg_type::uchar_type:
7036
109k
        case arg_type::ushort_type:
7037
229k
        case arg_type::uint_type:
7038
229k
        case arg_type::ulong_type:
7039
351k
        case arg_type::ullong_type:
7040
351k
            return arg_type_category::unsigned_integer;
7041
7042
50
        case arg_type::pointer_type:
7043
50
            return arg_type_category::pointer;
7044
50
        case arg_type::bool_type:
7045
50
            return arg_type_category::boolean;
7046
42
        case arg_type::narrow_character_type:
7047
50
        case arg_type::wide_character_type:
7048
50
        case arg_type::code_point_type:
7049
50
            return arg_type_category::character;
7050
7051
328k
        case arg_type::float_type:
7052
688k
        case arg_type::double_type:
7053
1.05M
        case arg_type::ldouble_type:
7054
1.05M
            return arg_type_category::floating;
7055
7056
1.58k
        case arg_type::narrow_string_view_type:
7057
4.70k
        case arg_type::narrow_string_type:
7058
7.79k
        case arg_type::wide_string_view_type:
7059
13.9k
        case arg_type::wide_string_type:
7060
13.9k
            return arg_type_category::string;
7061
7062
0
        case arg_type::custom_type:
7063
0
            return arg_type_category::custom;
7064
7065
0
            SCN_CLANG_PUSH
7066
0
            SCN_CLANG_IGNORE("-Wcovered-switch-default")
7067
0
        default:
7068
0
            SCN_ENSURE(false);
7069
1.81M
            SCN_UNREACHABLE;
7070
1.81M
            SCN_CLANG_POP
7071
1.81M
    }
7072
7073
1.81M
    SCN_UNREACHABLE;
7074
1.81M
}
7075
7076
template <typename Handler>
7077
class specs_checker : public Handler {
7078
public:
7079
    template <typename H>
7080
    constexpr specs_checker(H&& handler, arg_type type)
7081
        : Handler(SCN_FWD(handler)), m_arg_type(type)
7082
32.0M
    {
7083
32.0M
        SCN_EXPECT(m_arg_type != arg_type::custom_type);
7084
32.0M
    }
impl.cpp:scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<char> > >::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<char> > >(scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<char> >&&, scn::v3::detail::arg_type)
Line
Count
Source
7082
3.61M
    {
7083
3.61M
        SCN_EXPECT(m_arg_type != arg_type::custom_type);
7084
3.61M
    }
impl.cpp:scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<char> > >::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<char> > >(scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<char> >&&, scn::v3::detail::arg_type)
Line
Count
Source
7082
3.54M
    {
7083
3.54M
        SCN_EXPECT(m_arg_type != arg_type::custom_type);
7084
3.54M
    }
impl.cpp:scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<wchar_t> > >::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<wchar_t> > >(scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<wchar_t> >&&, scn::v3::detail::arg_type)
Line
Count
Source
7082
16.3M
    {
7083
16.3M
        SCN_EXPECT(m_arg_type != arg_type::custom_type);
7084
16.3M
    }
impl.cpp:scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<wchar_t> > >::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<wchar_t> > >(scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<wchar_t> >&&, scn::v3::detail::arg_type)
Line
Count
Source
7082
8.49M
    {
7083
8.49M
        SCN_EXPECT(m_arg_type != arg_type::custom_type);
7084
8.49M
    }
7085
7086
    constexpr void on_localized()
7087
1.81M
    {
7088
1.81M
        const auto cat = get_category_for_arg_type(m_arg_type);
7089
1.81M
        if (cat != arg_type_category::integer &&
7090
1.81M
            cat != arg_type_category::unsigned_integer &&
7091
1.81M
            cat != arg_type_category::floating &&
7092
1.81M
            cat != arg_type_category::boolean) {
7093
14.2k
            SCN_UNLIKELY_ATTR
7094
            // clang-format off
7095
14.2k
            return this->on_error("'L' specifier can only be used with arguments of integer, floating-point, or boolean types");
7096
            // clang-format on
7097
14.2k
        }
7098
7099
1.80M
        Handler::on_localized();
7100
1.80M
    }
impl.cpp:scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<char> > >::on_localized()
Line
Count
Source
7087
807k
    {
7088
807k
        const auto cat = get_category_for_arg_type(m_arg_type);
7089
807k
        if (cat != arg_type_category::integer &&
7090
807k
            cat != arg_type_category::unsigned_integer &&
7091
807k
            cat != arg_type_category::floating &&
7092
807k
            cat != arg_type_category::boolean) {
7093
3.33k
            SCN_UNLIKELY_ATTR
7094
            // clang-format off
7095
3.33k
            return this->on_error("'L' specifier can only be used with arguments of integer, floating-point, or boolean types");
7096
            // clang-format on
7097
3.33k
        }
7098
7099
804k
        Handler::on_localized();
7100
804k
    }
impl.cpp:scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<char> > >::on_localized()
Line
Count
Source
7087
819k
    {
7088
819k
        const auto cat = get_category_for_arg_type(m_arg_type);
7089
819k
        if (cat != arg_type_category::integer &&
7090
819k
            cat != arg_type_category::unsigned_integer &&
7091
819k
            cat != arg_type_category::floating &&
7092
819k
            cat != arg_type_category::boolean) {
7093
1.53k
            SCN_UNLIKELY_ATTR
7094
            // clang-format off
7095
1.53k
            return this->on_error("'L' specifier can only be used with arguments of integer, floating-point, or boolean types");
7096
            // clang-format on
7097
1.53k
        }
7098
7099
817k
        Handler::on_localized();
7100
817k
    }
impl.cpp:scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<wchar_t> > >::on_localized()
Line
Count
Source
7087
97.8k
    {
7088
97.8k
        const auto cat = get_category_for_arg_type(m_arg_type);
7089
97.8k
        if (cat != arg_type_category::integer &&
7090
97.8k
            cat != arg_type_category::unsigned_integer &&
7091
97.8k
            cat != arg_type_category::floating &&
7092
97.8k
            cat != arg_type_category::boolean) {
7093
6.31k
            SCN_UNLIKELY_ATTR
7094
            // clang-format off
7095
6.31k
            return this->on_error("'L' specifier can only be used with arguments of integer, floating-point, or boolean types");
7096
            // clang-format on
7097
6.31k
        }
7098
7099
91.5k
        Handler::on_localized();
7100
91.5k
    }
impl.cpp:scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<wchar_t> > >::on_localized()
Line
Count
Source
7087
94.5k
    {
7088
94.5k
        const auto cat = get_category_for_arg_type(m_arg_type);
7089
94.5k
        if (cat != arg_type_category::integer &&
7090
94.5k
            cat != arg_type_category::unsigned_integer &&
7091
94.5k
            cat != arg_type_category::floating &&
7092
94.5k
            cat != arg_type_category::boolean) {
7093
3.07k
            SCN_UNLIKELY_ATTR
7094
            // clang-format off
7095
3.07k
            return this->on_error("'L' specifier can only be used with arguments of integer, floating-point, or boolean types");
7096
            // clang-format on
7097
3.07k
        }
7098
7099
91.4k
        Handler::on_localized();
7100
91.4k
    }
7101
7102
private:
7103
    arg_type m_arg_type;
7104
};
7105
7106
template <typename Handler>
7107
constexpr void check_int_type_specs(const format_specs& specs,
7108
                                    Handler&& handler)
7109
3.97M
{
7110
3.97M
    if (SCN_UNLIKELY(specs.type > presentation_type::int_hex)) {
7111
10.5k
        return handler.on_error("Invalid type specifier for integer type");
7112
10.5k
    }
7113
3.96M
    if (specs.localized) {
7114
750k
        if (SCN_UNLIKELY(specs.type == presentation_type::int_binary)) {
7115
            // clang-format off
7116
8
            handler.on_error("'b'/'B' specifier not supported for localized integers");
7117
            // clang-format on
7118
8
            return;
7119
8
        }
7120
750k
        if (SCN_UNLIKELY(specs.type == presentation_type::int_arbitrary_base)) {
7121
            // clang-format off
7122
0
            return handler.on_error("Arbitrary bases not supported for localized integers");
7123
            // clang-format on
7124
0
        }
7125
750k
    }
7126
3.96M
}
Unexecuted instantiation: void scn::v3::detail::check_int_type_specs<scn::v3::detail::specs_checker<scn::v3::detail::specs_setter>&>(scn::v3::detail::format_specs const&, scn::v3::detail::specs_checker<scn::v3::detail::specs_setter>&)
void scn::v3::detail::check_int_type_specs<scn::v3::impl::reader_error_handler&>(scn::v3::detail::format_specs const&, scn::v3::impl::reader_error_handler&)
Line
Count
Source
7109
3.97M
{
7110
3.97M
    if (SCN_UNLIKELY(specs.type > presentation_type::int_hex)) {
7111
10.5k
        return handler.on_error("Invalid type specifier for integer type");
7112
10.5k
    }
7113
3.96M
    if (specs.localized) {
7114
750k
        if (SCN_UNLIKELY(specs.type == presentation_type::int_binary)) {
7115
            // clang-format off
7116
8
            handler.on_error("'b'/'B' specifier not supported for localized integers");
7117
            // clang-format on
7118
8
            return;
7119
8
        }
7120
750k
        if (SCN_UNLIKELY(specs.type == presentation_type::int_arbitrary_base)) {
7121
            // clang-format off
7122
0
            return handler.on_error("Arbitrary bases not supported for localized integers");
7123
            // clang-format on
7124
0
        }
7125
750k
    }
7126
3.96M
}
7127
7128
template <typename Handler>
7129
constexpr void check_char_type_specs(const format_specs& specs,
7130
                                     Handler&& handler)
7131
6.28k
{
7132
6.28k
    if (specs.type > presentation_type::int_hex ||
7133
6.28k
        specs.type == presentation_type::int_arbitrary_base) {
7134
5.24k
        SCN_UNLIKELY_ATTR
7135
5.24k
        return handler.on_error("Invalid type specifier for character type");
7136
5.24k
    }
7137
6.28k
}
Unexecuted instantiation: void scn::v3::detail::check_char_type_specs<scn::v3::detail::specs_checker<scn::v3::detail::specs_setter>&>(scn::v3::detail::format_specs const&, scn::v3::detail::specs_checker<scn::v3::detail::specs_setter>&)
void scn::v3::detail::check_char_type_specs<scn::v3::impl::reader_error_handler&>(scn::v3::detail::format_specs const&, scn::v3::impl::reader_error_handler&)
Line
Count
Source
7131
6.28k
{
7132
6.28k
    if (specs.type > presentation_type::int_hex ||
7133
6.28k
        specs.type == presentation_type::int_arbitrary_base) {
7134
5.24k
        SCN_UNLIKELY_ATTR
7135
5.24k
        return handler.on_error("Invalid type specifier for character type");
7136
5.24k
    }
7137
6.28k
}
7138
7139
template <typename Handler>
7140
constexpr void check_code_point_type_specs(const format_specs& specs,
7141
                                           Handler&& handler)
7142
0
{
7143
0
    if (specs.type != presentation_type::none &&
7144
0
        specs.type != presentation_type::character) {
7145
0
        SCN_UNLIKELY_ATTR
7146
0
        return handler.on_error("Invalid type specifier for code point type");
7147
0
    }
7148
0
}
7149
7150
template <typename Handler>
7151
constexpr void check_float_type_specs(const format_specs& specs,
7152
                                      Handler&& handler)
7153
3.78M
{
7154
3.78M
    if (specs.type != presentation_type::none &&
7155
3.78M
        (specs.type < presentation_type::float_hex ||
7156
2.73M
         specs.type > presentation_type::float_general)) {
7157
5.27k
        SCN_UNLIKELY_ATTR
7158
5.27k
        return handler.on_error("Invalid type specifier for float type");
7159
5.27k
    }
7160
3.78M
}
Unexecuted instantiation: void scn::v3::detail::check_float_type_specs<scn::v3::detail::specs_checker<scn::v3::detail::specs_setter>&>(scn::v3::detail::format_specs const&, scn::v3::detail::specs_checker<scn::v3::detail::specs_setter>&)
void scn::v3::detail::check_float_type_specs<scn::v3::impl::reader_error_handler&>(scn::v3::detail::format_specs const&, scn::v3::impl::reader_error_handler&)
Line
Count
Source
7153
3.78M
{
7154
3.78M
    if (specs.type != presentation_type::none &&
7155
3.78M
        (specs.type < presentation_type::float_hex ||
7156
2.73M
         specs.type > presentation_type::float_general)) {
7157
5.27k
        SCN_UNLIKELY_ATTR
7158
5.27k
        return handler.on_error("Invalid type specifier for float type");
7159
5.27k
    }
7160
3.78M
}
7161
7162
template <typename Handler>
7163
constexpr void check_string_type_specs(const format_specs& specs,
7164
                                       Handler&& handler)
7165
23.7M
{
7166
23.7M
    if (specs.type == presentation_type::none ||
7167
23.7M
        specs.type == presentation_type::string ||
7168
23.7M
        specs.type == presentation_type::string_set ||
7169
23.7M
        specs.type == presentation_type::regex ||
7170
23.7M
        specs.type == presentation_type::regex_escaped) {
7171
23.7M
        return;
7172
23.7M
    }
7173
14.4k
    if (specs.type == presentation_type::character) {
7174
13.9k
        if (SCN_UNLIKELY(specs.precision == 0)) {
7175
            // clang-format off
7176
13.8k
            return handler.on_error("'c' type specifier for strings requires the field precision to be specified");
7177
            // clang-format on
7178
13.8k
        }
7179
126
        return;
7180
13.9k
    }
7181
480
    SCN_UNLIKELY_ATTR
7182
480
    handler.on_error("Invalid type specifier for string");
7183
480
}
Unexecuted instantiation: void scn::v3::detail::check_string_type_specs<scn::v3::detail::specs_checker<scn::v3::detail::specs_setter>&>(scn::v3::detail::format_specs const&, scn::v3::detail::specs_checker<scn::v3::detail::specs_setter>&)
void scn::v3::detail::check_string_type_specs<scn::v3::impl::reader_error_handler&>(scn::v3::detail::format_specs const&, scn::v3::impl::reader_error_handler&)
Line
Count
Source
7165
23.7M
{
7166
23.7M
    if (specs.type == presentation_type::none ||
7167
23.7M
        specs.type == presentation_type::string ||
7168
23.7M
        specs.type == presentation_type::string_set ||
7169
23.7M
        specs.type == presentation_type::regex ||
7170
23.7M
        specs.type == presentation_type::regex_escaped) {
7171
23.7M
        return;
7172
23.7M
    }
7173
14.4k
    if (specs.type == presentation_type::character) {
7174
13.9k
        if (SCN_UNLIKELY(specs.precision == 0)) {
7175
            // clang-format off
7176
13.8k
            return handler.on_error("'c' type specifier for strings requires the field precision to be specified");
7177
            // clang-format on
7178
13.8k
        }
7179
126
        return;
7180
13.9k
    }
7181
480
    SCN_UNLIKELY_ATTR
7182
480
    handler.on_error("Invalid type specifier for string");
7183
480
}
7184
7185
template <typename Handler>
7186
constexpr void check_pointer_type_specs(const format_specs& specs,
7187
                                        Handler&& handler)
7188
6.28k
{
7189
6.28k
    if (specs.type != presentation_type::none &&
7190
6.28k
        specs.type != presentation_type::pointer) {
7191
5.31k
        SCN_UNLIKELY_ATTR
7192
5.31k
        return handler.on_error("Invalid type specifier for pointer");
7193
5.31k
    }
7194
6.28k
}
Unexecuted instantiation: void scn::v3::detail::check_pointer_type_specs<scn::v3::detail::specs_checker<scn::v3::detail::specs_setter>&>(scn::v3::detail::format_specs const&, scn::v3::detail::specs_checker<scn::v3::detail::specs_setter>&)
void scn::v3::detail::check_pointer_type_specs<scn::v3::impl::reader_error_handler&>(scn::v3::detail::format_specs const&, scn::v3::impl::reader_error_handler&)
Line
Count
Source
7188
6.28k
{
7189
6.28k
    if (specs.type != presentation_type::none &&
7190
6.28k
        specs.type != presentation_type::pointer) {
7191
5.31k
        SCN_UNLIKELY_ATTR
7192
5.31k
        return handler.on_error("Invalid type specifier for pointer");
7193
5.31k
    }
7194
6.28k
}
7195
7196
template <typename Handler>
7197
constexpr void check_bool_type_specs(const format_specs& specs,
7198
                                     Handler&& handler)
7199
6.32k
{
7200
6.32k
    if (specs.type != presentation_type::none &&
7201
6.32k
        specs.type != presentation_type::string &&
7202
6.32k
        specs.type != presentation_type::int_generic &&
7203
6.32k
        specs.type != presentation_type::int_hex &&
7204
6.32k
        specs.type != presentation_type::int_binary &&
7205
6.32k
        specs.type != presentation_type::int_unsigned_decimal &&
7206
6.32k
        specs.type != presentation_type::int_octal &&
7207
6.32k
        specs.type != presentation_type::int_decimal) {
7208
5.07k
        SCN_UNLIKELY_ATTR
7209
5.07k
        return handler.on_error("Invalid type specifier for boolean");
7210
5.07k
    }
7211
6.32k
}
Unexecuted instantiation: void scn::v3::detail::check_bool_type_specs<scn::v3::detail::specs_checker<scn::v3::detail::specs_setter>&>(scn::v3::detail::format_specs const&, scn::v3::detail::specs_checker<scn::v3::detail::specs_setter>&)
void scn::v3::detail::check_bool_type_specs<scn::v3::impl::reader_error_handler&>(scn::v3::detail::format_specs const&, scn::v3::impl::reader_error_handler&)
Line
Count
Source
7199
6.32k
{
7200
6.32k
    if (specs.type != presentation_type::none &&
7201
6.32k
        specs.type != presentation_type::string &&
7202
6.32k
        specs.type != presentation_type::int_generic &&
7203
6.32k
        specs.type != presentation_type::int_hex &&
7204
6.32k
        specs.type != presentation_type::int_binary &&
7205
6.32k
        specs.type != presentation_type::int_unsigned_decimal &&
7206
6.32k
        specs.type != presentation_type::int_octal &&
7207
6.32k
        specs.type != presentation_type::int_decimal) {
7208
5.07k
        SCN_UNLIKELY_ATTR
7209
5.07k
        return handler.on_error("Invalid type specifier for boolean");
7210
5.07k
    }
7211
6.32k
}
7212
7213
template <typename Handler>
7214
constexpr void check_regex_type_specs(const format_specs& specs,
7215
                                      Handler&& handler)
7216
0
{
7217
0
    if (SCN_UNLIKELY(specs.type == presentation_type::none ||
7218
0
                     specs.charset_string_size == 0)) {
7219
        // clang-format off
7220
0
        return handler.on_error("Regular expression needs to specified when reading regex_matches");
7221
        // clang-format on
7222
0
    }
7223
0
    if (specs.type == presentation_type::regex ||
7224
0
        specs.type == presentation_type::regex_escaped) {
7225
0
        return;
7226
0
    }
7227
0
    SCN_UNLIKELY_ATTR
7228
0
    handler.on_error("Invalid type specifier for regex_matches");
7229
0
}
Unexecuted instantiation: void scn::v3::detail::check_regex_type_specs<scn::v3::detail::specs_checker<scn::v3::detail::specs_setter>&>(scn::v3::detail::format_specs const&, scn::v3::detail::specs_checker<scn::v3::detail::specs_setter>&)
Unexecuted instantiation: void scn::v3::detail::check_regex_type_specs<scn::v3::impl::reader_error_handler&>(scn::v3::detail::format_specs const&, scn::v3::impl::reader_error_handler&)
7230
}  // namespace detail
7231
7232
/**
7233
 * \defgroup format-string Format strings
7234
 *
7235
 * \brief Format string description
7236
 *
7237
 * The format string syntax is heavily influenced by {fmt} and
7238
 * `std::format`, and is largely compatible with it. Scanning functions,
7239
 * such as `scn::scan` and
7240
 * `scn::input`, use the format string syntax described in this section.
7241
 *
7242
 * Format strings consist of:
7243
 *
7244
 *  * Replacement fields, which are surrounded by curly braces `{}`.
7245
 *
7246
 *  * Non-whitespace characters (except `{}`; for literal braces, use
7247
 *    `{{` and `}}`), which consume exactly one identical character from the
7248
 *    input
7249
 *
7250
 *  * Whitespace characters, which consume any and all available consecutive
7251
 *    whitespace from the input.
7252
 *
7253
 * Literal characters are matched by code point one-to-one, with no
7254
 * normalization being done.
7255
 * `Ä` (U+00C4, UTF-8 0xc3 0x84) only matches another U+00C4, and not, for
7256
 * example, U+00A8 (DIAERESIS) and U+0041 (LATIN CAPITAL LETTER A).
7257
 *
7258
 * Characters (code points) are considered to be whitespace characters by
7259
 * the Unicode Pattern_White_Space property, as defined by UAX31-R3a.
7260
 * These code points are:
7261
 *
7262
 *  * ASCII whitespace characters ("\t\n\v\f\r ")
7263
 *  * U+0085 (next line)
7264
 *  * U+200E and U+200F (LEFT-TO-RIGHT MARK and RIGHT-TO-LEFT MARK)
7265
 *  * U+2028 and U+2029 (LINE SEPARATOR and PARAGRAPH SEPARATOR)
7266
 *
7267
 * The grammar for a replacement field is as follows:
7268
 *
7269
 * \code
7270
 * replacement-field   ::= '{' [arg-id] [':' format-spec] '}'
7271
 * arg-id              ::= positive-integer
7272
 *
7273
 * format-spec         ::= [fill-and-align]
7274
 *                         [width] [precision]
7275
 *                         ['L'] [type]
7276
 * fill-and-align      ::= [fill] align
7277
 * fill                ::= any character other than
7278
 *                         '{' or '}'
7279
 * align               ::= one of '<' '>' '^'
7280
 * width               ::= positive-integer
7281
 * precision           ::= '.' nonnegative-integer
7282
 * type                ::= 'a' | 'A' | 'b' | 'B' | 'c' | 'd' |
7283
 *                         'e' | 'E' | 'f' | 'F' | 'g' | 'G' |
7284
 *                         'o' | 'p' | 's' | 'x' | 'X' | 'i' | 'u'
7285
 * \endcode
7286
 *
7287
 * \section arg-ids Argument IDs
7288
 *
7289
 * The `arg-id` specifier can be used to index arguments manually.
7290
 * If manual indexing is used, all of the indices in a format string must be
7291
 * stated explicitly. The same `arg-id` can appear in the format string
7292
 * only once, and must refer to a valid argument.
7293
 *
7294
 * \code{.cpp}
7295
 * // Format string equivalent to "{0} to {1}"
7296
 * auto a = scn::scan<int, int>("2 to 300", "{} to {}");
7297
 * // a->values() == (2, 300)
7298
 *
7299
 * // Manual indexing
7300
 * auto b = scn::scan<int, int>("2 to 300", "{1} to {0}");
7301
 * // b->values() == (3, 200)
7302
 *
7303
 * // INVALID:
7304
 * // Automatic and manual indexing is mixed
7305
 * auto c = scn::scan<int, int>("2 to 300", "{} to {0}");
7306
 *
7307
 * // INVALID:
7308
 * // Same argument is referred to multiple times
7309
 * auto d = scn::scan<int, int>("2 to 300", "{0} to {0}");
7310
 *
7311
 * // INVALID:
7312
 * // {2} does not refer to an argument
7313
 * auto e = scn::scan<int, int>("2 to 300", "{0} to {2}");
7314
 * \endcode
7315
 *
7316
 * \section fill-and-align Fill and align
7317
 *
7318
 * Alignment allows for skipping character before and/or after a value.
7319
 * There are three possible values for alignment:
7320
 *
7321
 * <table>
7322
 * <caption id="align-table">
7323
 * Alignment options
7324
 * </caption>
7325
 *
7326
 * <tr><th>Option</th> <th>Meaning</th></tr>
7327
 *
7328
 * <tr>
7329
 * <td>`<`</td>
7330
 * <td>
7331
 * Align the value to the left (skips fill characters after the value)
7332
 * </td>
7333
 * </tr>
7334
 *
7335
 * <tr>
7336
 * <td>`>`</td>
7337
 * <td>
7338
 * Align the value to the right (skips fill characters before the value)
7339
 * </td>
7340
 * </tr>
7341
 *
7342
 * <tr>
7343
 * <td>`^`</td>
7344
 * <td>
7345
 * Align the value to the center
7346
 * (skips fill characters both before and after the value)
7347
 * </td>
7348
 * </tr>
7349
 * </table>
7350
 *
7351
 * The fill character can be any Unicode code point, except for `{` and `}`.
7352
 * The default fill is any whitespace character, as specified above.
7353
 *
7354
 * For format type specifiers other than `c` (default for `char` and `wchar_t`,
7355
 * available for `string` and `string_view`), `[...]`, and the regex `/.../`,
7356
 * the default alignment is `>`.
7357
 * In practice, this means that leading whitespace is skipped by default.
7358
 * For the `c` format type specifier, there's no default alignment,
7359
 * and no fill characters are skipped, including whitespace.
7360
 *
7361
 * The number of fill characters consumed can be controlled with the width and
7362
 * precision specifiers.
7363
 *
7364
 * \section width Width
7365
 *
7366
 * Width specifies the minimum number of characters that will be read from
7367
 * the source range. It can be any unsigned integer. Any fill characters skipped
7368
 * are included in the width.
7369
 *
7370
 * For the purposes of width calculation, the same algorithm is used that in
7371
 * {fmt}. Every code point has a width of one, except the following ones
7372
 * have a width of 2:
7373
 *
7374
 * * any code point with the East_Asian_Width="W" or East_Asian_Width="F"
7375
 *   Derived Extracted Property as described by UAX#44
7376
 * * U+4DC0 – U+4DFF (Yijing Hexagram Symbols)
7377
 * * U+1F300 – U+1F5FF (Miscellaneous Symbols and Pictographs)
7378
 * * U+1F900 – U+1F9FF (Supplemental Symbols and Pictographs)
7379
 *
7380
 * \section precision Precision
7381
 *
7382
 * Precision specifies the maximum number of characters that will be read from
7383
 * the source range. The method for counting characters is the same as above,
7384
 * with the width field.
7385
 *
7386
 * \section localized Localized
7387
 *
7388
 * The `L` flag enables localized scanning.
7389
 * Its effects are different for each type it is used with:
7390
 *
7391
 *  * For integers, it enables locale-specific thousands separators
7392
 *  * For floating-point numbers, it enables locale-specific thousands and
7393
 *    radix (decimal) separators
7394
 *  * For booleans, it enables locale-specific textual representations (for
7395
 *    `true` and `false`)
7396
 *  * For other types, it has no effect
7397
 *
7398
 * \section type Type specifier
7399
 *
7400
 * The type specifier determines how the data is to be scanned.
7401
 * The type of the argument to be scanned determines what flags are valid.
7402
 *
7403
 * \subsection type-string Type specifier: strings
7404
 *
7405
 * <table>
7406
 * <caption id="type-string-table">
7407
 * String types (`std::basic_string` and `std::basic_string_view`)
7408
 * </caption>
7409
 * <tr><th>Type</th> <th>Meaning</th></tr>
7410
 * <tr>
7411
 * <td>none, `s`</td>
7412
 * <td>
7413
 * Copies from the input until a whitespace character is encountered, or,
7414
 * if using the `<` (left) or `^` (center) alignment,
7415
 * a fill character is encountered.
7416
 * </td>
7417
 * </tr>
7418
 * <tr>
7419
 * <td>`c`</td>
7420
 * <td>
7421
 * Copies from the input until the field width is exhausted.
7422
 * Has no default alignment
7423
 * (doesn't skip preceding whitespace, if no alignment is specified).
7424
 * Errors if no field precision is provided.
7425
 * </td>
7426
 * </tr>
7427
 * <tr>
7428
 * <td>`[...]`</td>
7429
 * <td>
7430
 * Character set matching: copies from the input until a character not specified
7431
 * in the set is encountered. Character ranges can be specified with `-`, and
7432
 * the entire selection can be inverted with a prefix `^`. Matches and supports
7433
 * arbitrary Unicode code points.
7434
 * Has no default alignment
7435
 * (doesn't skip preceding whitespace, if no alignment is specified).
7436
 * </td>
7437
 * </tr>
7438
 * <tr>
7439
 * <td>`/<regex>/<flags>`</td>
7440
 * <td>
7441
 * Regular expression matching: copies from the input until the input does not
7442
 * match the regex.
7443
 * Has no default alignment
7444
 * (doesn't skip preceding whitespace, if no alignment is specified).
7445
 * \see regex
7446
 * </td>
7447
 * </tr>
7448
 * </table>
7449
 *
7450
 * \note `std::basic_string_view` can only be scanned if the source is
7451
 * contiguous.
7452
 *
7453
 * \subsection type-int Type specifier: integers
7454
 *
7455
 * Integer values are scanned as if by using `std::from_chars`,
7456
 * except a positive `+` sign and a base prefix (like `0x`) are always
7457
 * allowed to be present.
7458
 *
7459
 * <table>
7460
 * <caption id="type-int-table">
7461
 * Integer types (`signed` and `unsigned` variants of `char`, `short`,
7462
 * `int`, `long`, and `long long`)
7463
 * </caption>
7464
 * <tr><th>Type</th> <th>Meaning</th></tr>
7465
 * <tr>
7466
 * <td>`b`, `B`</td>
7467
 * <td>
7468
 * `std::from_chars` with base `2`. The base prefix is `0b` or `0B`.
7469
 * </td>
7470
 * </tr>
7471
 * <tr>
7472
 * <td>`o`, `O`</td>
7473
 * <td>
7474
 * `std::from_chars` with base `8`. The base prefix is `0o` or `0O`, or just
7475
 * `0`.
7476
 * </td>
7477
 * </tr>
7478
 * <tr>
7479
 * <td>`x`, `X`</td>
7480
 * <td>
7481
 * `std::from_chars` with base `16`. The base prefix is `0x` or `0X`.
7482
 * </td>
7483
 * </tr>
7484
 * <tr>
7485
 * <td>`d`</td>
7486
 * <td>
7487
 * `std::from_chars` with base `10`. No base prefix allowed.
7488
 * </td>
7489
 * </tr>
7490
 * <tr>
7491
 * <td>`u`</td>
7492
 * <td>
7493
 * `std::from_chars` with base `10`. No base prefix or `-` sign allowed.
7494
 * </td>
7495
 * </tr>
7496
 * <tr>
7497
 * <td>`i`</td>
7498
 * <td>
7499
 * Detect the base from a possible prefix, defaulting to decimal (base-10).
7500
 * </td>
7501
 * </tr>
7502
 * <tr>
7503
 * <td>`rXX` (where XX = [2, 36])</td>
7504
 * <td>
7505
 * Custom base, without a base prefix (r stands for radix).
7506
 * </td>
7507
 * </tr>
7508
 * <tr>
7509
 * <td>`c`</td>
7510
 * <td>
7511
 * Copies a character (code unit) from the input.
7512
 * </td>
7513
 * </tr>
7514
 * <tr>
7515
 * <td>none</td>
7516
 * <td>
7517
 * Same as `d`.
7518
 * </td>
7519
 * </tr>
7520
 * </table>
7521
 *
7522
 * \subsection type-char Type specifier: characters
7523
 *
7524
 * <table>
7525
 * <caption id="type-char-table">
7526
 * Character types (`char` and `wchar_t`), and code points (`char32_t`)
7527
 * </caption>
7528
 * <tr><th>Type</th> <th>Meaning</th></tr>
7529
 * <tr>
7530
 * <td>none, `c`</td>
7531
 * <td>
7532
 * Copies a character (code point for `char32_t`, code unit otherwise) from the
7533
 * input.
7534
 * </td>
7535
 * </tr>
7536
 * <tr>
7537
 * <td>`b`, `B`, `d`, `i`, `o`, `O`, `u`, `x`, `X`</td>
7538
 * <td>
7539
 * Same as for integers, see above \ref type-int. Not allowed for `char32_t`.
7540
 * </td>
7541
 * </tr>
7542
 * </table>
7543
 *
7544
 * \note When scanning characters (`char` and `wchar_t`), the source range is
7545
 * read a single code unit at a time, and encoding is not respected.
7546
 *
7547
 * \subsection type-float Type specifier: floating-point values
7548
 *
7549
 * Floating-point values are scanned as if by using `std::from_chars`,
7550
 * except a positive `+` sign and a base prefix (like `0x`) are always
7551
 * allowed to be present.
7552
 *
7553
 * <table>
7554
 * <caption id="type-float-table">
7555
 * Floating-point types (`float`, `double`, and `long double`)
7556
 * </caption>
7557
 * <tr><th>Type</th> <th>Meaning</th></tr>
7558
 * <tr>
7559
 * <td>`a`, `A`</td>
7560
 * <td>
7561
 * `std::from_chars` with `std::chars_format::hex`.
7562
 * Prefix `0x`/`0X` is allowed.
7563
 * </td>
7564
 * </tr>
7565
 * <tr>
7566
 * <td>`e`, `E`</td>
7567
 * <td>
7568
 * `std::from_chars` with `std::chars_format::scientific`.
7569
 * </td>
7570
 * </tr>
7571
 * <tr>
7572
 * <td>`f`, `F`</td>
7573
 * <td>
7574
 * `std::from_chars` with `std::chars_format::fixed`.
7575
 * </td>
7576
 * </tr>
7577
 * <tr>
7578
 * <td>`g`, `G`</td>
7579
 * <td>
7580
 * `std::from_chars` with `std::chars_format::general`.
7581
 * </td>
7582
 * </tr>
7583
 * <tr>
7584
 * <td>none</td>
7585
 * <td>
7586
 * `std::from_chars` with `std::chars_format::general | std::chars_format::hex`.
7587
 * Prefix `0x`/`0X` is allowed.
7588
 * </td>
7589
 * </tr>
7590
 * </table>
7591
 *
7592
 * \subsection type-bool Type specifier: booleans
7593
 *
7594
 * <table>
7595
 * <caption id="type-bool-table">
7596
 * `bool`
7597
 * </caption>
7598
 * <tr><th>Type</th> <th>Meaning</th></tr>
7599
 * <tr>
7600
 * <td>`s`</td>
7601
 * <td>
7602
 * Allows for the textual representation (`true` or `false`).
7603
 * </td>
7604
 * </tr>
7605
 * <tr>
7606
 * <td>`b`, `B`, `d`, `i`, `o`, `O`, `u`, `x`, `X`</td>
7607
 * <td>
7608
 * Allows for the integral/numeric representation (`0` or `1`).
7609
 * </td>
7610
 * </tr>
7611
 * <tr>
7612
 * <td>none</td>
7613
 * <td>
7614
 * Allows for both the textual and the integral/numeric representation.
7615
 * </td>
7616
 * </tr>
7617
 * </table>
7618
 */
7619
7620
namespace detail {
7621
/**
7622
 * A runtime format string
7623
 *
7624
 * \ingroup format-string
7625
 */
7626
template <typename CharT>
7627
struct basic_runtime_format_string {
7628
57.6M
    basic_runtime_format_string(std::basic_string_view<CharT> s) : str(s) {}
scn::v3::detail::basic_runtime_format_string<char>::basic_runtime_format_string(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Line
Count
Source
7628
8.93M
    basic_runtime_format_string(std::basic_string_view<CharT> s) : str(s) {}
scn::v3::detail::basic_runtime_format_string<wchar_t>::basic_runtime_format_string(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >)
Line
Count
Source
7628
48.7M
    basic_runtime_format_string(std::basic_string_view<CharT> s) : str(s) {}
7629
7630
    basic_runtime_format_string(const basic_runtime_format_string&) = delete;
7631
    basic_runtime_format_string(basic_runtime_format_string&&) = delete;
7632
    basic_runtime_format_string& operator=(const basic_runtime_format_string&) =
7633
        delete;
7634
    basic_runtime_format_string& operator=(basic_runtime_format_string&&) =
7635
        delete;
7636
    ~basic_runtime_format_string() = default;
7637
7638
    std::basic_string_view<CharT> str;
7639
};
7640
}  // namespace detail
7641
7642
/**
7643
 * Create a runtime format string
7644
 *
7645
 * Can be used to avoid compile-time format string checking
7646
 *
7647
 * \ingroup format-string
7648
 */
7649
inline detail::basic_runtime_format_string<char> runtime_format(
7650
    std::string_view s)
7651
8.93M
{
7652
8.93M
    return s;
7653
8.93M
}
7654
inline detail::basic_runtime_format_string<wchar_t> runtime_format(
7655
    std::wstring_view s)
7656
48.7M
{
7657
48.7M
    return s;
7658
48.7M
}
7659
7660
namespace detail {
7661
struct compile_string {};
7662
7663
template <typename Str>
7664
inline constexpr bool is_compile_string_v =
7665
    std::is_base_of_v<compile_string, Str>;
7666
7667
template <typename Scanner, typename = void>
7668
inline constexpr bool scanner_has_format_specs_member_v = false;
7669
template <typename Scanner>
7670
inline constexpr bool scanner_has_format_specs_member_v<
7671
    Scanner,
7672
    std::void_t<decltype(SCN_DECLVAL(Scanner&)._format_specs())>> = true;
7673
7674
template <typename T, typename Source, typename Ctx, typename ParseCtx>
7675
constexpr typename ParseCtx::iterator parse_format_specs(ParseCtx& parse_ctx)
7676
{
7677
    using char_type = typename ParseCtx::char_type;
7678
    using mapped_type = std::conditional_t<
7679
        mapped_type_constant<T, char_type>::value != arg_type::custom_type,
7680
        std::remove_reference_t<decltype(arg_mapper<char_type>().map(
7681
            SCN_DECLVAL(T&)))>,
7682
        T>;
7683
    auto s = typename Ctx::template scanner_type<mapped_type>{};
7684
    auto it = s.parse(parse_ctx)
7685
                  .transform_error([&](scan_error err) constexpr {
7686
                      parse_ctx.on_error(err.msg());
7687
                      return err;
7688
                  })
7689
                  .value_or(parse_ctx.end());
7690
    if constexpr (scanner_has_format_specs_member_v<decltype(s)>) {
7691
        auto& specs = s._format_specs();
7692
        if ((specs.type == presentation_type::regex ||
7693
             specs.type == presentation_type::regex_escaped) &&
7694
            !(ranges::range<Source> && ranges::contiguous_range<Source>)) {
7695
            // clang-format off
7696
            parse_ctx.on_error("Cannot read a regex from a non-contiguous source");
7697
            // clang-format on
7698
        }
7699
    }
7700
    return it;
7701
}
7702
7703
template <typename CharT, typename Source, typename... Args>
7704
class format_string_checker {
7705
public:
7706
    using parse_context_type = compile_parse_context<CharT>;
7707
    static constexpr auto num_args = sizeof...(Args);
7708
7709
    explicit constexpr format_string_checker(
7710
        std::basic_string_view<CharT> format_str)
7711
        : m_parse_context(format_str,
7712
                          num_args,
7713
                          m_types,
7714
                          type_identity<Source>{}),
7715
          m_parse_funcs{&parse_format_specs<Args,
7716
                                            Source,
7717
                                            basic_scan_context<CharT>,
7718
                                            parse_context_type>...},
7719
          m_types{arg_type_constant<Args, CharT>::value...}
7720
    {
7721
    }
7722
7723
    constexpr void on_literal_text(const CharT* begin, const CharT* end) const
7724
    {
7725
        // TODO: Do we want to validate Unicode in format strings?
7726
        // We're dealing with text, so we probably do.
7727
        // We could do codeunit-to-codeunit matching,
7728
        // but that could get messy wrt. whitespace matching.
7729
        // It's simpler to not allow nonsense.
7730
        while (begin != end) {
7731
            const auto len = code_point_length_by_starting_code_unit(*begin);
7732
            if (SCN_UNLIKELY(len == 0 ||
7733
                             static_cast<size_t>(end - begin) < len)) {
7734
                return on_error("Invalid encoding in format string");
7735
            }
7736
7737
            const auto cp = decode_code_point_exhaustive(
7738
                std::basic_string_view<CharT>{begin, len});
7739
            if (SCN_UNLIKELY(cp >= invalid_code_point)) {
7740
                return on_error("Invalid encoding in format string");
7741
            }
7742
7743
            begin += len;
7744
        }
7745
    }
7746
7747
    constexpr auto on_arg_id()
7748
    {
7749
        return m_parse_context.next_arg_id();
7750
    }
7751
    constexpr auto on_arg_id(std::size_t id)
7752
    {
7753
        m_parse_context.check_arg_id(id);
7754
        return id;
7755
    }
7756
7757
    constexpr void on_replacement_field(size_t id, const CharT*)
7758
    {
7759
        m_parse_context.check_arg_can_be_read(id);
7760
        set_arg_as_read(id);
7761
7762
        if (m_types[id] == arg_type::narrow_regex_matches_type ||
7763
            m_types[id] == arg_type::wide_regex_matches_type) {
7764
            // clang-format off
7765
            return on_error("Regular expression needs to be specified when reading regex_matches");
7766
            // clang-format on
7767
        }
7768
    }
7769
7770
    constexpr const CharT* on_format_specs(std::size_t id,
7771
                                           const CharT* begin,
7772
                                           const CharT*)
7773
    {
7774
        m_parse_context.check_arg_can_be_read(id);
7775
        set_arg_as_read(id);
7776
        m_parse_context.advance_to(begin);
7777
        return id < num_args ? m_parse_funcs[id](m_parse_context) : begin;
7778
    }
7779
7780
    constexpr void check_args_exhausted() const
7781
    {
7782
        if (num_args == 0) {
7783
            return;
7784
        }
7785
        for (auto is_set : m_visited_args) {
7786
            if (!is_set) {
7787
                return on_error("Argument list not exhausted");
7788
            }
7789
        }
7790
    }
7791
7792
    void on_error(const char* msg) const
7793
    {
7794
        SCN_UNLIKELY_ATTR
7795
        m_parse_context.on_error(msg);
7796
    }
7797
7798
    // Only to satisfy the concept and eliminate compiler errors,
7799
    // because errors are reported by failing to compile on_error above
7800
    // (it's not constexpr)
7801
    constexpr explicit operator bool() const
7802
    {
7803
        return true;
7804
    }
7805
    constexpr scan_error get_error() const
7806
    {
7807
        return {};
7808
    }
7809
7810
private:
7811
    constexpr void set_arg_as_read(size_t id)
7812
    {
7813
        if (id >= num_args) {
7814
            return on_error("Invalid out-of-range argument ID");
7815
        }
7816
        if (m_visited_args[id]) {
7817
            return on_error("Argument with this ID already scanned");
7818
        }
7819
        m_visited_args[id] = true;
7820
    }
7821
7822
    using parse_func = const CharT* (*)(parse_context_type&);
7823
7824
    parse_context_type m_parse_context;
7825
    parse_func m_parse_funcs[num_args > 0 ? num_args : 1];
7826
    arg_type m_types[num_args > 0 ? num_args : 1];
7827
    bool m_visited_args[num_args > 0 ? num_args : 1] = {false};
7828
};
7829
7830
template <typename Source, typename... Args, typename Str>
7831
auto check_format_string(const Str&)
7832
    -> std::enable_if_t<!is_compile_string_v<Str>>
7833
{
7834
    // TODO: SCN_ENFORE_COMPILE_STRING?
7835
#if 0  // SCN_ENFORE_COMPILE_STRING
7836
    static_assert(dependent_false<Str>::value,
7837
              "SCN_ENFORCE_COMPILE_STRING requires all format "
7838
              "strings to use SCN_STRING.");
7839
#endif
7840
}
7841
7842
template <typename Source, typename... Args, typename Str>
7843
auto check_format_string(Str format_str)
7844
    -> std::enable_if_t<is_compile_string_v<Str>>
7845
{
7846
    using char_type = typename Str::char_type;
7847
7848
    SCN_GCC_PUSH
7849
    SCN_GCC_IGNORE("-Wconversion")
7850
    constexpr auto s = std::basic_string_view<char_type>{format_str};
7851
    SCN_GCC_POP
7852
7853
    using checker = format_string_checker<char_type, Source, Args...>;
7854
    constexpr bool invalid_format =
7855
        (parse_format_string<true>(s, checker(s)), true);
7856
    SCN_UNUSED(invalid_format);
7857
}
7858
7859
template <typename CharT, std::size_t N>
7860
constexpr std::basic_string_view<CharT> compile_string_to_view(
7861
    const CharT (&s)[N])
7862
{
7863
    return {s, N - 1};
7864
}
7865
template <typename CharT>
7866
constexpr std::basic_string_view<CharT> compile_string_to_view(
7867
    std::basic_string_view<CharT> s)
7868
{
7869
    return s;
7870
}
7871
}  // namespace detail
7872
7873
#define SCN_STRING_IMPL(s, base, expl)                                       \
7874
    [] {                                                                     \
7875
        struct SCN_COMPILE_STRING : base {                                   \
7876
            using char_type = ::scn::detail::remove_cvref_t<decltype(s[0])>; \
7877
            SCN_MAYBE_UNUSED constexpr expl                                  \
7878
            operator ::std::basic_string_view<char_type>() const             \
7879
            {                                                                \
7880
                return ::scn::detail::compile_string_to_view<char_type>(s);  \
7881
            }                                                                \
7882
        };                                                                   \
7883
        return SCN_COMPILE_STRING{};                                         \
7884
    }()
7885
7886
#define SCN_STRING(s) SCN_STRING_IMPL(s, ::scn::detail::compile_string, )
7887
7888
/**
7889
 * Compile-time format string
7890
 *
7891
 * \ingroup format-string
7892
 */
7893
template <typename CharT, typename Source, typename... Args>
7894
class basic_scan_format_string {
7895
public:
7896
    SCN_CLANG_PUSH
7897
#if SCN_CLANG >= SCN_COMPILER(10, 0, 0)
7898
    SCN_CLANG_IGNORE("-Wc++20-compat")  // false positive about consteval
7899
#endif
7900
    template <
7901
        typename S,
7902
        std::enable_if_t<
7903
            std::is_convertible_v<const S&, std::basic_string_view<CharT>> &&
7904
            detail::is_not_self<S, basic_scan_format_string>>* = nullptr>
7905
    SCN_CONSTEVAL basic_scan_format_string(const S& s) : m_str(s)
7906
    {
7907
#if SCN_HAS_CONSTEVAL
7908
        using checker = detail::format_string_checker<CharT, Source, Args...>;
7909
        const auto e = detail::parse_format_string<true>(m_str, checker(s));
7910
        SCN_UNUSED(e);
7911
#else
7912
        detail::check_format_string<Source, Args...>(s);
7913
#endif
7914
    }
7915
    SCN_CLANG_POP
7916
7917
    template <
7918
        typename OtherSource,
7919
        std::enable_if_t<std::is_same_v<detail::remove_cvref_t<Source>,
7920
                                        detail::remove_cvref_t<OtherSource>> &&
7921
                         ranges::borrowed_range<Source> ==
7922
                             ranges::borrowed_range<OtherSource>>* = nullptr>
7923
    constexpr basic_scan_format_string(
7924
        const basic_scan_format_string<CharT, OtherSource, Args...>& other)
7925
        : m_str(other.get())
7926
    {
7927
    }
7928
7929
    basic_scan_format_string(detail::basic_runtime_format_string<CharT> r)
7930
        : m_str(r.str)
7931
57.6M
    {
7932
57.6M
    }
scn::v3::basic_scan_format_string<char, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, char>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<char>)
Line
Count
Source
7931
8.37k
    {
7932
8.37k
    }
scn::v3::basic_scan_format_string<char, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, int>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<char>)
Line
Count
Source
7931
8.37k
    {
7932
8.37k
    }
scn::v3::basic_scan_format_string<char, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, unsigned int>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<char>)
Line
Count
Source
7931
8.37k
    {
7932
8.37k
    }
scn::v3::basic_scan_format_string<char, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, double>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<char>)
Line
Count
Source
7931
8.37k
    {
7932
8.37k
    }
scn::v3::basic_scan_format_string<char, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, bool>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<char>)
Line
Count
Source
7931
8.37k
    {
7932
8.37k
    }
scn::v3::basic_scan_format_string<char, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, void*>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<char>)
Line
Count
Source
7931
8.37k
    {
7932
8.37k
    }
scn::v3::basic_scan_format_string<char, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<char>)
Line
Count
Source
7931
8.37k
    {
7932
8.37k
    }
scn::v3::basic_scan_format_string<char, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<char>)
Line
Count
Source
7931
8.37k
    {
7932
8.37k
    }
scn::v3::basic_scan_format_string<char, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, std::__1::basic_string_view<char, std::__1::char_traits<char> > >::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<char>)
Line
Count
Source
7931
8.37k
    {
7932
8.37k
    }
scn::v3::basic_scan_format_string<wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, wchar_t>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
7931
16.7k
    {
7932
16.7k
    }
scn::v3::basic_scan_format_string<wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, int>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
7931
16.7k
    {
7932
16.7k
    }
scn::v3::basic_scan_format_string<wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, unsigned int>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
7931
16.7k
    {
7932
16.7k
    }
scn::v3::basic_scan_format_string<wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, double>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
7931
16.7k
    {
7932
16.7k
    }
scn::v3::basic_scan_format_string<wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, bool>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
7931
16.7k
    {
7932
16.7k
    }
scn::v3::basic_scan_format_string<wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, void*>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
7931
16.7k
    {
7932
16.7k
    }
scn::v3::basic_scan_format_string<wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
7931
16.7k
    {
7932
16.7k
    }
scn::v3::basic_scan_format_string<wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
7931
16.7k
    {
7932
16.7k
    }
scn::v3::basic_scan_format_string<wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
7931
16.7k
    {
7932
16.7k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, signed char>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<char>)
Line
Count
Source
7931
311k
    {
7932
311k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned char>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<char>)
Line
Count
Source
7931
300k
    {
7932
300k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, int>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<char>)
Line
Count
Source
7931
393k
    {
7932
393k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<char>)
Line
Count
Source
7931
339k
    {
7932
339k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long long>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<char>)
Line
Count
Source
7931
400k
    {
7932
400k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned long long>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<char>)
Line
Count
Source
7931
343k
    {
7932
343k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, signed char>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<char>)
Line
Count
Source
7931
313k
    {
7932
313k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned char>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<char>)
Line
Count
Source
7931
302k
    {
7932
302k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, int>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<char>)
Line
Count
Source
7931
394k
    {
7932
394k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned int>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<char>)
Line
Count
Source
7931
341k
    {
7932
341k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long long>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<char>)
Line
Count
Source
7931
401k
    {
7932
401k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned long long>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<char>)
Line
Count
Source
7931
345k
    {
7932
345k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, signed char>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
7931
78.3k
    {
7932
78.3k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned char>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
7931
78.3k
    {
7932
78.3k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
7931
78.4k
    {
7932
78.4k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
7931
78.3k
    {
7932
78.3k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long long>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
7931
78.6k
    {
7932
78.6k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned long long>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
7931
78.4k
    {
7932
78.4k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, signed char>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
7931
78.3k
    {
7932
78.3k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned char>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
7931
78.3k
    {
7932
78.3k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, int>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
7931
78.4k
    {
7932
78.4k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned int>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
7931
78.3k
    {
7932
78.3k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long long>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
7931
78.6k
    {
7932
78.6k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned long long>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
7931
78.4k
    {
7932
78.4k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<char>)
Line
Count
Source
7931
130k
    {
7932
130k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<char>)
Line
Count
Source
7931
130k
    {
7932
130k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<char>)
Line
Count
Source
7931
131k
    {
7932
131k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
7931
15.7M
    {
7932
15.7M
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
7931
15.7M
    {
7932
15.7M
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
7931
15.7M
    {
7932
15.7M
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, float>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<char>)
Line
Count
Source
7931
672k
    {
7932
672k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, double>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<char>)
Line
Count
Source
7931
725k
    {
7932
725k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long double>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<char>)
Line
Count
Source
7931
735k
    {
7932
735k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, float>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<char>)
Line
Count
Source
7931
675k
    {
7932
675k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, double>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<char>)
Line
Count
Source
7931
729k
    {
7932
729k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long double>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<char>)
Line
Count
Source
7931
738k
    {
7932
738k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, float>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
7931
85.8k
    {
7932
85.8k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
7931
85.9k
    {
7932
85.9k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long double>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
7931
86.0k
    {
7932
86.0k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, float>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
7931
85.7k
    {
7932
85.7k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, double>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
7931
85.8k
    {
7932
85.8k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long double>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
7931
86.0k
    {
7932
86.0k
    }
7933
7934
    constexpr operator std::basic_string_view<CharT>() const
7935
57.6M
    {
7936
57.6M
        return m_str;
7937
57.6M
    }
scn::v3::basic_scan_format_string<char, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, char>::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
7935
8.37k
    {
7936
8.37k
        return m_str;
7937
8.37k
    }
scn::v3::basic_scan_format_string<char, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, int>::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
7935
8.37k
    {
7936
8.37k
        return m_str;
7937
8.37k
    }
scn::v3::basic_scan_format_string<char, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, unsigned int>::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
7935
8.37k
    {
7936
8.37k
        return m_str;
7937
8.37k
    }
scn::v3::basic_scan_format_string<char, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, double>::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
7935
8.37k
    {
7936
8.37k
        return m_str;
7937
8.37k
    }
scn::v3::basic_scan_format_string<char, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, bool>::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
7935
8.37k
    {
7936
8.37k
        return m_str;
7937
8.37k
    }
scn::v3::basic_scan_format_string<char, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, void*>::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
7935
8.37k
    {
7936
8.37k
        return m_str;
7937
8.37k
    }
scn::v3::basic_scan_format_string<char, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
7935
8.37k
    {
7936
8.37k
        return m_str;
7937
8.37k
    }
scn::v3::basic_scan_format_string<char, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
7935
8.37k
    {
7936
8.37k
        return m_str;
7937
8.37k
    }
scn::v3::basic_scan_format_string<char, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, std::__1::basic_string_view<char, std::__1::char_traits<char> > >::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
7935
8.37k
    {
7936
8.37k
        return m_str;
7937
8.37k
    }
scn::v3::basic_scan_format_string<wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, wchar_t>::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
7935
16.7k
    {
7936
16.7k
        return m_str;
7937
16.7k
    }
scn::v3::basic_scan_format_string<wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, int>::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
7935
16.7k
    {
7936
16.7k
        return m_str;
7937
16.7k
    }
scn::v3::basic_scan_format_string<wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, unsigned int>::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
7935
16.7k
    {
7936
16.7k
        return m_str;
7937
16.7k
    }
scn::v3::basic_scan_format_string<wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, double>::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
7935
16.7k
    {
7936
16.7k
        return m_str;
7937
16.7k
    }
scn::v3::basic_scan_format_string<wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, bool>::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
7935
16.7k
    {
7936
16.7k
        return m_str;
7937
16.7k
    }
scn::v3::basic_scan_format_string<wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, void*>::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
7935
16.7k
    {
7936
16.7k
        return m_str;
7937
16.7k
    }
scn::v3::basic_scan_format_string<wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
7935
16.7k
    {
7936
16.7k
        return m_str;
7937
16.7k
    }
scn::v3::basic_scan_format_string<wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
7935
16.7k
    {
7936
16.7k
        return m_str;
7937
16.7k
    }
scn::v3::basic_scan_format_string<wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
7935
16.7k
    {
7936
16.7k
        return m_str;
7937
16.7k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, signed char>::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
7935
311k
    {
7936
311k
        return m_str;
7937
311k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned char>::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
7935
300k
    {
7936
300k
        return m_str;
7937
300k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, int>::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
7935
393k
    {
7936
393k
        return m_str;
7937
393k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
7935
339k
    {
7936
339k
        return m_str;
7937
339k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long long>::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
7935
400k
    {
7936
400k
        return m_str;
7937
400k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned long long>::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
7935
343k
    {
7936
343k
        return m_str;
7937
343k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, signed char>::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
7935
313k
    {
7936
313k
        return m_str;
7937
313k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned char>::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
7935
302k
    {
7936
302k
        return m_str;
7937
302k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, int>::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
7935
394k
    {
7936
394k
        return m_str;
7937
394k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned int>::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
7935
341k
    {
7936
341k
        return m_str;
7937
341k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long long>::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
7935
401k
    {
7936
401k
        return m_str;
7937
401k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned long long>::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
7935
345k
    {
7936
345k
        return m_str;
7937
345k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, signed char>::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
7935
78.3k
    {
7936
78.3k
        return m_str;
7937
78.3k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned char>::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
7935
78.3k
    {
7936
78.3k
        return m_str;
7937
78.3k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
7935
78.4k
    {
7936
78.4k
        return m_str;
7937
78.4k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
7935
78.3k
    {
7936
78.3k
        return m_str;
7937
78.3k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long long>::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
7935
78.6k
    {
7936
78.6k
        return m_str;
7937
78.6k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned long long>::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
7935
78.4k
    {
7936
78.4k
        return m_str;
7937
78.4k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, signed char>::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
7935
78.3k
    {
7936
78.3k
        return m_str;
7937
78.3k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned char>::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
7935
78.3k
    {
7936
78.3k
        return m_str;
7937
78.3k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, int>::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
7935
78.4k
    {
7936
78.4k
        return m_str;
7937
78.4k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned int>::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
7935
78.3k
    {
7936
78.3k
        return m_str;
7937
78.3k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long long>::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
7935
78.6k
    {
7936
78.6k
        return m_str;
7937
78.6k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned long long>::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
7935
78.4k
    {
7936
78.4k
        return m_str;
7937
78.4k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
7935
130k
    {
7936
130k
        return m_str;
7937
130k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
7935
130k
    {
7936
130k
        return m_str;
7937
130k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
7935
131k
    {
7936
131k
        return m_str;
7937
131k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
7935
15.7M
    {
7936
15.7M
        return m_str;
7937
15.7M
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
7935
15.7M
    {
7936
15.7M
        return m_str;
7937
15.7M
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
7935
15.7M
    {
7936
15.7M
        return m_str;
7937
15.7M
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, float>::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
7935
672k
    {
7936
672k
        return m_str;
7937
672k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, double>::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
7935
725k
    {
7936
725k
        return m_str;
7937
725k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long double>::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
7935
735k
    {
7936
735k
        return m_str;
7937
735k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, float>::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
7935
675k
    {
7936
675k
        return m_str;
7937
675k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, double>::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
7935
729k
    {
7936
729k
        return m_str;
7937
729k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long double>::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
7935
738k
    {
7936
738k
        return m_str;
7937
738k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, float>::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
7935
85.8k
    {
7936
85.8k
        return m_str;
7937
85.8k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
7935
85.9k
    {
7936
85.9k
        return m_str;
7937
85.9k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long double>::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
7935
86.0k
    {
7936
86.0k
        return m_str;
7937
86.0k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, float>::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
7935
85.7k
    {
7936
85.7k
        return m_str;
7937
85.7k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, double>::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
7935
85.8k
    {
7936
85.8k
        return m_str;
7937
85.8k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long double>::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
7935
86.0k
    {
7936
86.0k
        return m_str;
7937
86.0k
    }
7938
    constexpr std::basic_string_view<CharT> get() const
7939
    {
7940
        return m_str;
7941
    }
7942
7943
private:
7944
    std::basic_string_view<CharT> m_str;
7945
};
7946
7947
namespace detail {
7948
class locale_ref {
7949
#if !SCN_DISABLE_LOCALE
7950
public:
7951
71.2M
    constexpr locale_ref() = default;
7952
7953
    template <typename Locale>
7954
    explicit locale_ref(const Locale& loc);
7955
7956
    constexpr explicit operator bool() const noexcept
7957
0
    {
7958
0
        return m_locale != nullptr;
7959
0
    }
7960
7961
    template <typename Locale>
7962
    Locale get() const;
7963
7964
private:
7965
    const void* m_locale{nullptr};
7966
#else
7967
public:
7968
    constexpr locale_ref() = default;
7969
7970
    template <typename T>
7971
    constexpr explicit locale_ref(T&&)
7972
    {
7973
    }
7974
7975
    constexpr explicit operator bool() const noexcept
7976
    {
7977
        return true;
7978
    }
7979
#endif
7980
};
7981
}  // namespace detail
7982
7983
/////////////////////////////////////////////////////////////////
7984
// scan_context
7985
/////////////////////////////////////////////////////////////////
7986
7987
namespace detail {
7988
template <typename I>
7989
using apply_cmp_with_nullptr = decltype(SCN_DECLVAL(const I&) == nullptr);
7990
template <typename I>
7991
inline constexpr bool is_comparable_with_nullptr =
7992
    mp_valid_v<apply_cmp_with_nullptr, I>;
7993
7994
template <typename Args>
7995
class scan_context_base {
7996
public:
7997
    /// Get argument at index `id`
7998
    constexpr auto arg(size_t id) const noexcept
7999
32.0M
    {
8000
32.0M
        return m_args.get(id);
8001
32.0M
    }
scn::v3::detail::scan_context_base<scn::v3::basic_scan_args<scn::v3::basic_scan_context<char> > >::arg(unsigned long) const
Line
Count
Source
7999
7.15M
    {
8000
7.15M
        return m_args.get(id);
8001
7.15M
    }
scn::v3::detail::scan_context_base<scn::v3::basic_scan_args<scn::v3::basic_scan_context<wchar_t> > >::arg(unsigned long) const
Line
Count
Source
7999
24.9M
    {
8000
24.9M
        return m_args.get(id);
8001
24.9M
    }
8002
8003
    constexpr const Args& args() const
8004
86.9k
    {
8005
86.9k
        return m_args;
8006
86.9k
    }
scn::v3::detail::scan_context_base<scn::v3::basic_scan_args<scn::v3::basic_scan_context<char> > >::args() const
Line
Count
Source
8004
6.08k
    {
8005
6.08k
        return m_args;
8006
6.08k
    }
scn::v3::detail::scan_context_base<scn::v3::basic_scan_args<scn::v3::basic_scan_context<wchar_t> > >::args() const
Line
Count
Source
8004
80.8k
    {
8005
80.8k
        return m_args;
8006
80.8k
    }
8007
8008
    SCN_NODISCARD constexpr locale_ref locale() const
8009
31.6M
    {
8010
31.6M
        return m_locale;
8011
31.6M
    }
scn::v3::detail::scan_context_base<scn::v3::basic_scan_args<scn::v3::basic_scan_context<char> > >::locale() const
Line
Count
Source
8009
7.00M
    {
8010
7.00M
        return m_locale;
8011
7.00M
    }
scn::v3::detail::scan_context_base<scn::v3::basic_scan_args<scn::v3::basic_scan_context<wchar_t> > >::locale() const
Line
Count
Source
8009
24.6M
    {
8010
24.6M
        return m_locale;
8011
24.6M
    }
8012
8013
protected:
8014
    scan_context_base(Args args, locale_ref loc)
8015
        : m_args(SCN_MOVE(args)), m_locale(SCN_MOVE(loc))
8016
32.1M
    {
8017
32.1M
    }
scn::v3::detail::scan_context_base<scn::v3::basic_scan_args<scn::v3::basic_scan_context<char> > >::scan_context_base(scn::v3::basic_scan_args<scn::v3::basic_scan_context<char> >, scn::v3::detail::locale_ref)
Line
Count
Source
8016
7.17M
    {
8017
7.17M
    }
scn::v3::detail::scan_context_base<scn::v3::basic_scan_args<scn::v3::basic_scan_context<wchar_t> > >::scan_context_base(scn::v3::basic_scan_args<scn::v3::basic_scan_context<wchar_t> >, scn::v3::detail::locale_ref)
Line
Count
Source
8016
24.9M
    {
8017
24.9M
    }
8018
8019
    Args m_args;
8020
    locale_ref m_locale;
8021
};
8022
}  // namespace detail
8023
8024
/**
8025
 * \defgroup ctx Contexts and scanners
8026
 *
8027
 * \brief Lower-level APIs used for scanning individual values
8028
 *
8029
 * \section user-defined Scanning user-defined types
8030
 *
8031
 * User-defined types can be scanned by specializing the class template
8032
 * `scn::scanner`.
8033
 *
8034
 * \code{.cpp}
8035
 * struct mytype {
8036
 *   int key;
8037
 *   std::string value;
8038
 * };
8039
 *
8040
 * template <>
8041
 * struct scn::scanner<mytype> {
8042
 *   template <typename ParseContext>
8043
 *   constexpr auto parse(ParseCtx& pctx)
8044
 *     -> scan_expected<typename ParseContext::iterator> {
8045
 *     // parse() implementation just returning begin():
8046
 *     // only permits empty format specifiers
8047
 *     return pctx.begin();
8048
 *   }
8049
 *
8050
 *   template <typename Context>
8051
 *   auto scan(mytype& val, Context& ctx)
8052
 *     -> scan_expected<typename Context::iterator> {
8053
 *     return scn::scan<int, std::string>(ctx.range(), "{}: {}")
8054
 *       .transform([&](auto result) {
8055
 *         std::tie(val.key, val.value) = std::move(result->values());
8056
 *         return result.begin();
8057
 *       });
8058
 *   }
8059
 * };
8060
 * \endcode
8061
 *
8062
 * See also
8063
 * \ref g-usertypes
8064
 */
8065
8066
/**
8067
 * Scanning context.
8068
 *
8069
 * \ingroup ctx
8070
 */
8071
template <typename CharT>
8072
class basic_scan_context : public detail::scan_context_base<
8073
                               basic_scan_args<basic_scan_context<CharT>>> {
8074
    using base = detail::scan_context_base<basic_scan_args<basic_scan_context>>;
8075
8076
public:
8077
    /// Character type of the input
8078
    using char_type = CharT;
8079
    using buffer_type = detail::basic_scan_buffer<char_type>;
8080
    using range_type = typename buffer_type::range_type;
8081
    using iterator = ranges::iterator_t<range_type>;
8082
    using sentinel = ranges::sentinel_t<range_type>;
8083
    using parse_context_type = basic_scan_parse_context<char_type>;
8084
8085
    using args_type = basic_scan_args<basic_scan_context>;
8086
    using arg_type = basic_scan_arg<basic_scan_context>;
8087
8088
    /**
8089
     * The scanner type associated with this scanning context.
8090
     */
8091
    template <typename T>
8092
    using scanner_type = scanner<T, char_type>;
8093
8094
    constexpr basic_scan_context(iterator curr,
8095
                                 args_type a,
8096
                                 detail::locale_ref loc = {})
8097
        : base(SCN_MOVE(a), loc), m_current(curr)
8098
12.0M
    {
8099
12.0M
    }
scn::v3::basic_scan_context<char>::basic_scan_context(scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::basic_scan_args<scn::v3::basic_scan_context<char> >, scn::v3::detail::locale_ref)
Line
Count
Source
8098
3.54M
    {
8099
3.54M
    }
scn::v3::basic_scan_context<wchar_t>::basic_scan_context(scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::basic_scan_args<scn::v3::basic_scan_context<wchar_t> >, scn::v3::detail::locale_ref)
Line
Count
Source
8098
8.49M
    {
8099
8.49M
    }
8100
8101
    basic_scan_context(const basic_scan_context&) = delete;
8102
    basic_scan_context& operator=(const basic_scan_context&) = delete;
8103
8104
    basic_scan_context(basic_scan_context&&) = default;
8105
    basic_scan_context& operator=(basic_scan_context&&) = default;
8106
    ~basic_scan_context() = default;
8107
8108
    /**
8109
     * Returns an iterator pointing to the current position in the source
8110
     * range.
8111
     */
8112
    constexpr iterator begin() const
8113
34.9M
    {
8114
34.9M
        return m_current;
8115
34.9M
    }
scn::v3::basic_scan_context<char>::begin() const
Line
Count
Source
8113
10.2M
    {
8114
10.2M
        return m_current;
8115
10.2M
    }
scn::v3::basic_scan_context<wchar_t>::begin() const
Line
Count
Source
8113
24.7M
    {
8114
24.7M
        return m_current;
8115
24.7M
    }
8116
8117
    /**
8118
     * Returns a sentinel pointing to the end of the source range.
8119
     */
8120
    constexpr sentinel end() const
8121
11.8M
    {
8122
11.8M
        return ranges::default_sentinel;
8123
11.8M
    }
scn::v3::basic_scan_context<char>::end() const
Line
Count
Source
8121
3.46M
    {
8122
3.46M
        return ranges::default_sentinel;
8123
3.46M
    }
scn::v3::basic_scan_context<wchar_t>::end() const
Line
Count
Source
8121
8.34M
    {
8122
8.34M
        return ranges::default_sentinel;
8123
8.34M
    }
8124
8125
    /**
8126
     * Returns a subrange over `[begin(), end())`
8127
     */
8128
    constexpr auto range() const
8129
11.8M
    {
8130
11.8M
        return ranges::subrange{begin(), end()};
8131
11.8M
    }
scn::v3::basic_scan_context<char>::range() const
Line
Count
Source
8129
3.46M
    {
8130
3.46M
        return ranges::subrange{begin(), end()};
8131
3.46M
    }
scn::v3::basic_scan_context<wchar_t>::range() const
Line
Count
Source
8129
8.34M
    {
8130
8.34M
        return ranges::subrange{begin(), end()};
8131
8.34M
    }
8132
8133
    /// Advances the beginning of the source range to `it`
8134
    void advance_to(iterator it)
8135
11.1M
    {
8136
11.1M
        m_current = SCN_MOVE(it);
8137
11.1M
    }
scn::v3::basic_scan_context<char>::advance_to(scn::v3::detail::basic_scan_buffer<char>::forward_iterator)
Line
Count
Source
8135
3.23M
    {
8136
3.23M
        m_current = SCN_MOVE(it);
8137
3.23M
    }
scn::v3::basic_scan_context<wchar_t>::advance_to(scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator)
Line
Count
Source
8135
7.87M
    {
8136
7.87M
        m_current = SCN_MOVE(it);
8137
7.87M
    }
8138
8139
private:
8140
    iterator m_current;
8141
};
8142
8143
namespace detail {
8144
template <typename T, typename ParseCtx>
8145
constexpr scan_expected<typename ParseCtx::iterator>
8146
scanner_parse_for_builtin_type(ParseCtx& pctx, format_specs& specs);
8147
8148
template <typename T, typename Context>
8149
scan_expected<typename Context::iterator>
8150
scanner_scan_for_builtin_type(T& val, Context& ctx, const format_specs& specs);
8151
}  // namespace detail
8152
8153
/////////////////////////////////////////////////////////////////
8154
// scanner
8155
/////////////////////////////////////////////////////////////////
8156
8157
/**
8158
 * `scanner` specialization for all built-in types
8159
 *
8160
 * \ingroup ctx
8161
 */
8162
template <typename T, typename CharT>
8163
struct scanner<T,
8164
               CharT,
8165
               std::enable_if_t<detail::arg_type_constant<T, CharT>::value !=
8166
                                    detail::arg_type::custom_type &&
8167
                                !detail::is_type_disabled<T>>> {
8168
    template <typename ParseCtx>
8169
    constexpr auto parse(ParseCtx& pctx)
8170
        -> scan_expected<typename ParseCtx::iterator>
8171
    {
8172
        return detail::scanner_parse_for_builtin_type<T>(pctx, m_specs);
8173
    }
8174
8175
    template <typename Context>
8176
    scan_expected<typename Context::iterator> scan(T& val, Context& ctx) const
8177
    {
8178
        return detail::scanner_scan_for_builtin_type(val, ctx, m_specs);
8179
    }
8180
8181
    constexpr auto& _format_specs()
8182
    {
8183
        return m_specs;
8184
    }
8185
8186
private:
8187
    detail::format_specs m_specs;
8188
};
8189
8190
namespace detail {
8191
template <typename T, typename ParseCtx>
8192
constexpr scan_expected<typename ParseCtx::iterator>
8193
scanner_parse_for_builtin_type(ParseCtx& pctx, format_specs& specs)
8194
{
8195
    using char_type = typename ParseCtx::char_type;
8196
8197
    auto begin = pctx.begin();
8198
    const auto end = pctx.end();
8199
    if (begin == end) {
8200
        return begin;
8201
    }
8202
8203
    using handler_type = specs_setter;
8204
    const auto type = arg_type_constant<T, char_type>::value;
8205
    auto checker =
8206
        detail::specs_checker<handler_type>(handler_type(specs), type);
8207
8208
    const auto it =
8209
        detail::parse_format_specs(to_address(begin), to_address(end), checker);
8210
    if (auto e = checker.get_error(); SCN_UNLIKELY(!e)) {
8211
        return unexpected(e);
8212
    }
8213
8214
    switch (type) {
8215
        case arg_type::none_type:
8216
            SCN_FALLTHROUGH;
8217
        case arg_type::custom_type:
8218
            SCN_ENSURE(false);
8219
            break;
8220
8221
        case arg_type::bool_type:
8222
            check_bool_type_specs(specs, checker);
8223
            break;
8224
8225
        case arg_type::schar_type:
8226
        case arg_type::short_type:
8227
        case arg_type::int_type:
8228
        case arg_type::long_type:
8229
        case arg_type::llong_type:
8230
        case arg_type::uchar_type:
8231
        case arg_type::ushort_type:
8232
        case arg_type::uint_type:
8233
        case arg_type::ulong_type:
8234
        case arg_type::ullong_type:
8235
            check_int_type_specs(specs, checker);
8236
            break;
8237
8238
        case arg_type::narrow_character_type:
8239
        case arg_type::wide_character_type:
8240
        case arg_type::code_point_type:
8241
            check_char_type_specs(specs, checker);
8242
            break;
8243
8244
        case arg_type::float_type:
8245
        case arg_type::double_type:
8246
        case arg_type::ldouble_type:
8247
            check_float_type_specs(specs, checker);
8248
            break;
8249
8250
        case arg_type::narrow_string_type:
8251
        case arg_type::narrow_string_view_type:
8252
        case arg_type::wide_string_type:
8253
        case arg_type::wide_string_view_type:
8254
            check_string_type_specs(specs, checker);
8255
            break;
8256
8257
        case arg_type::pointer_type:
8258
            check_pointer_type_specs(specs, checker);
8259
            break;
8260
8261
        case arg_type::narrow_regex_matches_type:
8262
        case arg_type::wide_regex_matches_type:
8263
            check_regex_type_specs(specs, checker);
8264
            break;
8265
8266
            SCN_CLANG_PUSH
8267
            SCN_CLANG_IGNORE("-Wcovered-switch-default")
8268
8269
        default:
8270
            SCN_ENSURE(false);
8271
            SCN_UNREACHABLE;
8272
8273
            SCN_CLANG_POP
8274
    }
8275
8276
    if (auto e = checker.get_error(); SCN_UNLIKELY(!e)) {
8277
        return unexpected(e);
8278
    }
8279
8280
    return {it};
8281
}
8282
}  // namespace detail
8283
8284
/**
8285
 * Type for discarding any scanned value.
8286
 * Example:
8287
 *
8288
 * \code{.cpp}
8289
 * auto r = scn::scan<scn::discard<int>>("42", "{}");
8290
 * // r.has_value() == true
8291
 * // decltype(r->value()) is scn::discard<int>
8292
 * \endcode
8293
 *
8294
 * \ingroup format-string
8295
 */
8296
template <typename T>
8297
struct discard {
8298
    constexpr discard() = default;
8299
8300
    constexpr discard(const T&) noexcept {}
8301
    constexpr discard(T&&) noexcept {}
8302
8303
    constexpr discard& operator=(const T&) noexcept
8304
    {
8305
        return *this;
8306
    }
8307
    constexpr discard& operator=(T&&) noexcept
8308
    {
8309
        return *this;
8310
    }
8311
};
8312
8313
template <typename T, typename CharT>
8314
struct scanner<discard<T>, CharT> : public scanner<T, CharT> {
8315
    template <typename Context>
8316
    auto scan(discard<T>&, Context& ctx) const
8317
    {
8318
        T val{};
8319
        return scanner<T, CharT>::scan(val, ctx);
8320
    }
8321
};
8322
8323
namespace detail {
8324
template <typename Range>
8325
scan_expected<ranges::iterator_t<Range>> internal_skip_classic_whitespace(
8326
    Range r,
8327
    bool allow_exhaustion);
8328
8329
#define SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(T, Context) \
8330
    extern template scan_expected<Context::iterator>         \
8331
    scanner_scan_for_builtin_type(T&, Context&, const format_specs&);
8332
8333
#define SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_CTX(Context)                   \
8334
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(char, Context)                \
8335
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(wchar_t, Context)             \
8336
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(signed char, Context)         \
8337
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(signed char, Context)         \
8338
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(short, Context)               \
8339
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(int, Context)                 \
8340
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(long, Context)                \
8341
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(long long, Context)           \
8342
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(unsigned char, Context)       \
8343
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(unsigned short, Context)      \
8344
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(unsigned int, Context)        \
8345
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(unsigned long, Context)       \
8346
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(unsigned long long, Context)  \
8347
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(float, Context)               \
8348
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(double, Context)              \
8349
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(long double, Context)         \
8350
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(std::string, Context)         \
8351
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(std::wstring, Context)        \
8352
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(                              \
8353
        std::basic_string_view<Context::char_type>, Context)               \
8354
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(regex_matches, Context)       \
8355
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(wregex_matches, Context)      \
8356
    extern template scan_expected<ranges::iterator_t<Context::range_type>> \
8357
    internal_skip_classic_whitespace(Context::range_type, bool);
8358
8359
SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_CTX(scan_context)
8360
8361
}  // namespace detail
8362
8363
/////////////////////////////////////////////////////////////////
8364
// visit_scan_arg
8365
/////////////////////////////////////////////////////////////////
8366
8367
/**
8368
 * Visit a `basic_scan_arg` with `Visitor`.
8369
 * Calls `vis` with the value stored in `arg`.
8370
 * If no value is contained in `arg`, calls `vis` with a `monostate`.
8371
 *
8372
 * \return `vis(x)`, where `x` is either a reference to the value contained
8373
 * in `arg`, or a `basic_scan_arg::handle`.
8374
 */
8375
template <typename Visitor, typename Ctx>
8376
constexpr decltype(auto) visit_scan_arg(Visitor&& vis, basic_scan_arg<Ctx>& arg)
8377
69.8M
{
8378
69.8M
#define SCN_VISIT(Type)                                         \
8379
69.8M
    if constexpr (!detail::is_type_disabled<Type>) {            \
8380
69.8M
        return vis(*static_cast<Type*>(arg.m_value.ref_value)); \
8381
69.8M
    }                                                           \
8382
69.8M
    else {                                                      \
8383
69.8M
        return vis(monostate_val);                              \
8384
69.8M
    }
8385
8386
69.8M
    monostate monostate_val{};
8387
8388
69.8M
    switch (arg.m_type) {
8389
772k
        case detail::arg_type::schar_type:
8390
772k
            SCN_VISIT(signed char);
8391
0
        case detail::arg_type::short_type:
8392
0
            SCN_VISIT(short);
8393
958k
        case detail::arg_type::int_type:
8394
958k
            SCN_VISIT(int);
8395
0
        case detail::arg_type::long_type:
8396
0
            SCN_VISIT(long);
8397
958k
        case detail::arg_type::llong_type:
8398
958k
            SCN_VISIT(long long);
8399
744k
        case detail::arg_type::uchar_type:
8400
744k
            SCN_VISIT(unsigned char);
8401
0
        case detail::arg_type::ushort_type:
8402
0
            SCN_VISIT(unsigned short);
8403
843k
        case detail::arg_type::uint_type:
8404
843k
            SCN_VISIT(unsigned);
8405
0
        case detail::arg_type::ulong_type:
8406
0
            SCN_VISIT(unsigned long);
8407
835k
        case detail::arg_type::ullong_type:
8408
835k
            SCN_VISIT(unsigned long long);
8409
15.9k
        case detail::arg_type::pointer_type:
8410
15.9k
            SCN_VISIT(void*);
8411
15.9k
        case detail::arg_type::bool_type:
8412
15.9k
            SCN_VISIT(bool);
8413
6.50k
        case detail::arg_type::narrow_character_type:
8414
6.50k
            SCN_VISIT(char);
8415
9.41k
        case detail::arg_type::wide_character_type:
8416
9.41k
            SCN_VISIT(wchar_t);
8417
0
        case detail::arg_type::code_point_type:
8418
0
            SCN_VISIT(char32_t);
8419
1.67M
        case detail::arg_type::float_type:
8420
1.67M
            SCN_VISIT(float);
8421
1.81M
        case detail::arg_type::double_type:
8422
1.81M
            SCN_VISIT(double);
8423
1.82M
        case detail::arg_type::ldouble_type:
8424
1.82M
            SCN_VISIT(long double);
8425
164k
        case detail::arg_type::narrow_string_view_type:
8426
164k
            SCN_VISIT(std::string_view);
8427
333k
        case detail::arg_type::narrow_string_type:
8428
333k
            SCN_VISIT(std::string);
8429
19.6M
        case detail::arg_type::wide_string_view_type:
8430
19.6M
            SCN_VISIT(std::wstring_view);
8431
39.2M
        case detail::arg_type::wide_string_type:
8432
39.2M
            SCN_VISIT(std::wstring);
8433
0
        case detail::arg_type::narrow_regex_matches_type:
8434
0
            SCN_VISIT(regex_matches);
8435
0
        case detail::arg_type::wide_regex_matches_type:
8436
0
            SCN_VISIT(wregex_matches);
8437
8438
0
        case detail::arg_type::custom_type:
8439
0
#if !SCN_DISABLE_TYPE_CUSTOM
8440
0
            return vis(
8441
0
                typename Ctx::arg_type::handle(arg.m_value.custom_value));
8442
#else
8443
            return vis(monostate_val);
8444
#endif
8445
8446
0
            SCN_CLANG_PUSH
8447
0
            SCN_CLANG_IGNORE("-Wcovered-switch-default")
8448
8449
0
            SCN_UNLIKELY_ATTR
8450
0
        case detail::arg_type::none_type:
8451
0
        default: {
8452
0
            return vis(monostate_val);
8453
0
        }
8454
8455
69.8M
            SCN_CLANG_POP
8456
69.8M
    }
8457
8458
0
#undef SCN_VISIT
8459
8460
0
    SCN_ENSURE(false);
8461
0
    SCN_UNREACHABLE;
8462
0
}
decltype(auto) scn::v3::visit_scan_arg<scn::v3::impl::default_arg_reader<scn::v3::impl::basic_contiguous_scan_context<char> >, scn::v3::basic_scan_context<char> >(scn::v3::impl::default_arg_reader<scn::v3::impl::basic_contiguous_scan_context<char> >&&, scn::v3::basic_scan_arg<scn::v3::basic_scan_context<char> >&)
Line
Count
Source
8377
1.39M
{
8378
1.39M
#define SCN_VISIT(Type)                                         \
8379
1.39M
    if constexpr (!detail::is_type_disabled<Type>) {            \
8380
1.39M
        return vis(*static_cast<Type*>(arg.m_value.ref_value)); \
8381
1.39M
    }                                                           \
8382
1.39M
    else {                                                      \
8383
1.39M
        return vis(monostate_val);                              \
8384
1.39M
    }
8385
8386
1.39M
    monostate monostate_val{};
8387
8388
1.39M
    switch (arg.m_type) {
8389
78.8k
        case detail::arg_type::schar_type:
8390
78.8k
            SCN_VISIT(signed char);
8391
0
        case detail::arg_type::short_type:
8392
0
            SCN_VISIT(short);
8393
91.8k
        case detail::arg_type::int_type:
8394
91.8k
            SCN_VISIT(int);
8395
0
        case detail::arg_type::long_type:
8396
0
            SCN_VISIT(long);
8397
92.8k
        case detail::arg_type::llong_type:
8398
92.8k
            SCN_VISIT(long long);
8399
69.9k
        case detail::arg_type::uchar_type:
8400
69.9k
            SCN_VISIT(unsigned char);
8401
0
        case detail::arg_type::ushort_type:
8402
0
            SCN_VISIT(unsigned short);
8403
78.6k
        case detail::arg_type::uint_type:
8404
78.6k
            SCN_VISIT(unsigned);
8405
0
        case detail::arg_type::ulong_type:
8406
0
            SCN_VISIT(unsigned long);
8407
79.0k
        case detail::arg_type::ullong_type:
8408
79.0k
            SCN_VISIT(unsigned long long);
8409
658
        case detail::arg_type::pointer_type:
8410
658
            SCN_VISIT(void*);
8411
658
        case detail::arg_type::bool_type:
8412
658
            SCN_VISIT(bool);
8413
658
        case detail::arg_type::narrow_character_type:
8414
658
            SCN_VISIT(char);
8415
0
        case detail::arg_type::wide_character_type:
8416
0
            SCN_VISIT(wchar_t);
8417
0
        case detail::arg_type::code_point_type:
8418
0
            SCN_VISIT(char32_t);
8419
221k
        case detail::arg_type::float_type:
8420
221k
            SCN_VISIT(float);
8421
245k
        case detail::arg_type::double_type:
8422
245k
            SCN_VISIT(double);
8423
249k
        case detail::arg_type::ldouble_type:
8424
249k
            SCN_VISIT(long double);
8425
93.1k
        case detail::arg_type::narrow_string_view_type:
8426
93.1k
            SCN_VISIT(std::string_view);
8427
93.1k
        case detail::arg_type::narrow_string_type:
8428
93.1k
            SCN_VISIT(std::string);
8429
0
        case detail::arg_type::wide_string_view_type:
8430
0
            SCN_VISIT(std::wstring_view);
8431
658
        case detail::arg_type::wide_string_type:
8432
658
            SCN_VISIT(std::wstring);
8433
0
        case detail::arg_type::narrow_regex_matches_type:
8434
0
            SCN_VISIT(regex_matches);
8435
0
        case detail::arg_type::wide_regex_matches_type:
8436
0
            SCN_VISIT(wregex_matches);
8437
8438
0
        case detail::arg_type::custom_type:
8439
0
#if !SCN_DISABLE_TYPE_CUSTOM
8440
0
            return vis(
8441
0
                typename Ctx::arg_type::handle(arg.m_value.custom_value));
8442
#else
8443
            return vis(monostate_val);
8444
#endif
8445
8446
0
            SCN_CLANG_PUSH
8447
0
            SCN_CLANG_IGNORE("-Wcovered-switch-default")
8448
8449
0
            SCN_UNLIKELY_ATTR
8450
0
        case detail::arg_type::none_type:
8451
0
        default: {
8452
0
            return vis(monostate_val);
8453
0
        }
8454
8455
1.39M
            SCN_CLANG_POP
8456
1.39M
    }
8457
8458
0
#undef SCN_VISIT
8459
8460
0
    SCN_ENSURE(false);
8461
0
    SCN_UNREACHABLE;
8462
0
}
decltype(auto) scn::v3::visit_scan_arg<scn::v3::impl::default_arg_reader<scn::v3::basic_scan_context<char> >, scn::v3::basic_scan_context<char> >(scn::v3::impl::default_arg_reader<scn::v3::basic_scan_context<char> >&&, scn::v3::basic_scan_arg<scn::v3::basic_scan_context<char> >&)
Line
Count
Source
8377
1.24M
{
8378
1.24M
#define SCN_VISIT(Type)                                         \
8379
1.24M
    if constexpr (!detail::is_type_disabled<Type>) {            \
8380
1.24M
        return vis(*static_cast<Type*>(arg.m_value.ref_value)); \
8381
1.24M
    }                                                           \
8382
1.24M
    else {                                                      \
8383
1.24M
        return vis(monostate_val);                              \
8384
1.24M
    }
8385
8386
1.24M
    monostate monostate_val{};
8387
8388
1.24M
    switch (arg.m_type) {
8389
78.7k
        case detail::arg_type::schar_type:
8390
78.7k
            SCN_VISIT(signed char);
8391
0
        case detail::arg_type::short_type:
8392
0
            SCN_VISIT(short);
8393
89.5k
        case detail::arg_type::int_type:
8394
89.5k
            SCN_VISIT(int);
8395
0
        case detail::arg_type::long_type:
8396
0
            SCN_VISIT(long);
8397
91.0k
        case detail::arg_type::llong_type:
8398
91.0k
            SCN_VISIT(long long);
8399
69.8k
        case detail::arg_type::uchar_type:
8400
69.8k
            SCN_VISIT(unsigned char);
8401
0
        case detail::arg_type::ushort_type:
8402
0
            SCN_VISIT(unsigned short);
8403
77.8k
        case detail::arg_type::uint_type:
8404
77.8k
            SCN_VISIT(unsigned);
8405
0
        case detail::arg_type::ulong_type:
8406
0
            SCN_VISIT(unsigned long);
8407
78.8k
        case detail::arg_type::ullong_type:
8408
78.8k
            SCN_VISIT(unsigned long long);
8409
0
        case detail::arg_type::pointer_type:
8410
0
            SCN_VISIT(void*);
8411
0
        case detail::arg_type::bool_type:
8412
0
            SCN_VISIT(bool);
8413
0
        case detail::arg_type::narrow_character_type:
8414
0
            SCN_VISIT(char);
8415
0
        case detail::arg_type::wide_character_type:
8416
0
            SCN_VISIT(wchar_t);
8417
0
        case detail::arg_type::code_point_type:
8418
0
            SCN_VISIT(char32_t);
8419
206k
        case detail::arg_type::float_type:
8420
206k
            SCN_VISIT(float);
8421
229k
        case detail::arg_type::double_type:
8422
229k
            SCN_VISIT(double);
8423
232k
        case detail::arg_type::ldouble_type:
8424
232k
            SCN_VISIT(long double);
8425
0
        case detail::arg_type::narrow_string_view_type:
8426
0
            SCN_VISIT(std::string_view);
8427
93.6k
        case detail::arg_type::narrow_string_type:
8428
93.6k
            SCN_VISIT(std::string);
8429
0
        case detail::arg_type::wide_string_view_type:
8430
0
            SCN_VISIT(std::wstring_view);
8431
0
        case detail::arg_type::wide_string_type:
8432
0
            SCN_VISIT(std::wstring);
8433
0
        case detail::arg_type::narrow_regex_matches_type:
8434
0
            SCN_VISIT(regex_matches);
8435
0
        case detail::arg_type::wide_regex_matches_type:
8436
0
            SCN_VISIT(wregex_matches);
8437
8438
0
        case detail::arg_type::custom_type:
8439
0
#if !SCN_DISABLE_TYPE_CUSTOM
8440
0
            return vis(
8441
0
                typename Ctx::arg_type::handle(arg.m_value.custom_value));
8442
#else
8443
            return vis(monostate_val);
8444
#endif
8445
8446
0
            SCN_CLANG_PUSH
8447
0
            SCN_CLANG_IGNORE("-Wcovered-switch-default")
8448
8449
0
            SCN_UNLIKELY_ATTR
8450
0
        case detail::arg_type::none_type:
8451
0
        default: {
8452
0
            return vis(monostate_val);
8453
0
        }
8454
8455
1.24M
            SCN_CLANG_POP
8456
1.24M
    }
8457
8458
0
#undef SCN_VISIT
8459
8460
0
    SCN_ENSURE(false);
8461
0
    SCN_UNREACHABLE;
8462
0
}
Unexecuted instantiation: decltype(auto) scn::v3::visit_scan_arg<scn::v3::impl::custom_reader<scn::v3::basic_scan_context<char> >, scn::v3::basic_scan_context<char> >(scn::v3::impl::custom_reader<scn::v3::basic_scan_context<char> >&&, scn::v3::basic_scan_arg<scn::v3::basic_scan_context<char> >&)
decltype(auto) scn::v3::visit_scan_arg<scn::v3::impl::arg_reader<scn::v3::impl::basic_contiguous_scan_context<char> >, scn::v3::basic_scan_context<char> >(scn::v3::impl::arg_reader<scn::v3::impl::basic_contiguous_scan_context<char> >&&, scn::v3::basic_scan_arg<scn::v3::basic_scan_context<char> >&)
Line
Count
Source
8377
3.53M
{
8378
3.53M
#define SCN_VISIT(Type)                                         \
8379
3.53M
    if constexpr (!detail::is_type_disabled<Type>) {            \
8380
3.53M
        return vis(*static_cast<Type*>(arg.m_value.ref_value)); \
8381
3.53M
    }                                                           \
8382
3.53M
    else {                                                      \
8383
3.53M
        return vis(monostate_val);                              \
8384
3.53M
    }
8385
8386
3.53M
    monostate monostate_val{};
8387
8388
3.53M
    switch (arg.m_type) {
8389
247k
        case detail::arg_type::schar_type:
8390
247k
            SCN_VISIT(signed char);
8391
0
        case detail::arg_type::short_type:
8392
0
            SCN_VISIT(short);
8393
326k
        case detail::arg_type::int_type:
8394
326k
            SCN_VISIT(int);
8395
0
        case detail::arg_type::long_type:
8396
0
            SCN_VISIT(long);
8397
326k
        case detail::arg_type::llong_type:
8398
326k
            SCN_VISIT(long long);
8399
242k
        case detail::arg_type::uchar_type:
8400
242k
            SCN_VISIT(unsigned char);
8401
0
        case detail::arg_type::ushort_type:
8402
0
            SCN_VISIT(unsigned short);
8403
281k
        case detail::arg_type::uint_type:
8404
281k
            SCN_VISIT(unsigned);
8405
0
        case detail::arg_type::ulong_type:
8406
0
            SCN_VISIT(unsigned long);
8407
278k
        case detail::arg_type::ullong_type:
8408
278k
            SCN_VISIT(unsigned long long);
8409
5.84k
        case detail::arg_type::pointer_type:
8410
5.84k
            SCN_VISIT(void*);
8411
5.87k
        case detail::arg_type::bool_type:
8412
5.87k
            SCN_VISIT(bool);
8413
5.84k
        case detail::arg_type::narrow_character_type:
8414
5.84k
            SCN_VISIT(char);
8415
0
        case detail::arg_type::wide_character_type:
8416
0
            SCN_VISIT(wchar_t);
8417
0
        case detail::arg_type::code_point_type:
8418
0
            SCN_VISIT(char32_t);
8419
525k
        case detail::arg_type::float_type:
8420
525k
            SCN_VISIT(float);
8421
568k
        case detail::arg_type::double_type:
8422
568k
            SCN_VISIT(double);
8423
568k
        case detail::arg_type::ldouble_type:
8424
568k
            SCN_VISIT(long double);
8425
71.3k
        case detail::arg_type::narrow_string_view_type:
8426
71.3k
            SCN_VISIT(std::string_view);
8427
71.3k
        case detail::arg_type::narrow_string_type:
8428
71.3k
            SCN_VISIT(std::string);
8429
0
        case detail::arg_type::wide_string_view_type:
8430
0
            SCN_VISIT(std::wstring_view);
8431
5.84k
        case detail::arg_type::wide_string_type:
8432
5.84k
            SCN_VISIT(std::wstring);
8433
0
        case detail::arg_type::narrow_regex_matches_type:
8434
0
            SCN_VISIT(regex_matches);
8435
0
        case detail::arg_type::wide_regex_matches_type:
8436
0
            SCN_VISIT(wregex_matches);
8437
8438
0
        case detail::arg_type::custom_type:
8439
0
#if !SCN_DISABLE_TYPE_CUSTOM
8440
0
            return vis(
8441
0
                typename Ctx::arg_type::handle(arg.m_value.custom_value));
8442
#else
8443
            return vis(monostate_val);
8444
#endif
8445
8446
0
            SCN_CLANG_PUSH
8447
0
            SCN_CLANG_IGNORE("-Wcovered-switch-default")
8448
8449
0
            SCN_UNLIKELY_ATTR
8450
0
        case detail::arg_type::none_type:
8451
0
        default: {
8452
0
            return vis(monostate_val);
8453
0
        }
8454
8455
3.53M
            SCN_CLANG_POP
8456
3.53M
    }
8457
8458
0
#undef SCN_VISIT
8459
8460
0
    SCN_ENSURE(false);
8461
0
    SCN_UNREACHABLE;
8462
0
}
decltype(auto) scn::v3::visit_scan_arg<scn::v3::impl::arg_reader<scn::v3::basic_scan_context<char> >, scn::v3::basic_scan_context<char> >(scn::v3::impl::arg_reader<scn::v3::basic_scan_context<char> >&&, scn::v3::basic_scan_arg<scn::v3::basic_scan_context<char> >&)
Line
Count
Source
8377
3.46M
{
8378
3.46M
#define SCN_VISIT(Type)                                         \
8379
3.46M
    if constexpr (!detail::is_type_disabled<Type>) {            \
8380
3.46M
        return vis(*static_cast<Type*>(arg.m_value.ref_value)); \
8381
3.46M
    }                                                           \
8382
3.46M
    else {                                                      \
8383
3.46M
        return vis(monostate_val);                              \
8384
3.46M
    }
8385
8386
3.46M
    monostate monostate_val{};
8387
8388
3.46M
    switch (arg.m_type) {
8389
249k
        case detail::arg_type::schar_type:
8390
249k
            SCN_VISIT(signed char);
8391
0
        case detail::arg_type::short_type:
8392
0
            SCN_VISIT(short);
8393
322k
        case detail::arg_type::int_type:
8394
322k
            SCN_VISIT(int);
8395
0
        case detail::arg_type::long_type:
8396
0
            SCN_VISIT(long);
8397
328k
        case detail::arg_type::llong_type:
8398
328k
            SCN_VISIT(long long);
8399
244k
        case detail::arg_type::uchar_type:
8400
244k
            SCN_VISIT(unsigned char);
8401
0
        case detail::arg_type::ushort_type:
8402
0
            SCN_VISIT(unsigned short);
8403
277k
        case detail::arg_type::uint_type:
8404
277k
            SCN_VISIT(unsigned);
8405
0
        case detail::arg_type::ulong_type:
8406
0
            SCN_VISIT(unsigned long);
8407
280k
        case detail::arg_type::ullong_type:
8408
280k
            SCN_VISIT(unsigned long long);
8409
0
        case detail::arg_type::pointer_type:
8410
0
            SCN_VISIT(void*);
8411
0
        case detail::arg_type::bool_type:
8412
0
            SCN_VISIT(bool);
8413
0
        case detail::arg_type::narrow_character_type:
8414
0
            SCN_VISIT(char);
8415
0
        case detail::arg_type::wide_character_type:
8416
0
            SCN_VISIT(wchar_t);
8417
0
        case detail::arg_type::code_point_type:
8418
0
            SCN_VISIT(char32_t);
8419
538k
        case detail::arg_type::float_type:
8420
538k
            SCN_VISIT(float);
8421
576k
        case detail::arg_type::double_type:
8422
576k
            SCN_VISIT(double);
8423
583k
        case detail::arg_type::ldouble_type:
8424
583k
            SCN_VISIT(long double);
8425
0
        case detail::arg_type::narrow_string_view_type:
8426
0
            SCN_VISIT(std::string_view);
8427
66.0k
        case detail::arg_type::narrow_string_type:
8428
66.0k
            SCN_VISIT(std::string);
8429
0
        case detail::arg_type::wide_string_view_type:
8430
0
            SCN_VISIT(std::wstring_view);
8431
0
        case detail::arg_type::wide_string_type:
8432
0
            SCN_VISIT(std::wstring);
8433
0
        case detail::arg_type::narrow_regex_matches_type:
8434
0
            SCN_VISIT(regex_matches);
8435
0
        case detail::arg_type::wide_regex_matches_type:
8436
0
            SCN_VISIT(wregex_matches);
8437
8438
0
        case detail::arg_type::custom_type:
8439
0
#if !SCN_DISABLE_TYPE_CUSTOM
8440
0
            return vis(
8441
0
                typename Ctx::arg_type::handle(arg.m_value.custom_value));
8442
#else
8443
            return vis(monostate_val);
8444
#endif
8445
8446
0
            SCN_CLANG_PUSH
8447
0
            SCN_CLANG_IGNORE("-Wcovered-switch-default")
8448
8449
0
            SCN_UNLIKELY_ATTR
8450
0
        case detail::arg_type::none_type:
8451
0
        default: {
8452
0
            return vis(monostate_val);
8453
0
        }
8454
8455
3.46M
            SCN_CLANG_POP
8456
3.46M
    }
8457
8458
0
#undef SCN_VISIT
8459
8460
0
    SCN_ENSURE(false);
8461
0
    SCN_UNREACHABLE;
8462
0
}
decltype(auto) scn::v3::visit_scan_arg<scn::v3::impl::default_arg_reader<scn::v3::impl::basic_contiguous_scan_context<wchar_t> >, scn::v3::basic_scan_context<wchar_t> >(scn::v3::impl::default_arg_reader<scn::v3::impl::basic_contiguous_scan_context<wchar_t> >&&, scn::v3::basic_scan_arg<scn::v3::basic_scan_context<wchar_t> >&)
Line
Count
Source
8377
23.7M
{
8378
23.7M
#define SCN_VISIT(Type)                                         \
8379
23.7M
    if constexpr (!detail::is_type_disabled<Type>) {            \
8380
23.7M
        return vis(*static_cast<Type*>(arg.m_value.ref_value)); \
8381
23.7M
    }                                                           \
8382
23.7M
    else {                                                      \
8383
23.7M
        return vis(monostate_val);                              \
8384
23.7M
    }
8385
8386
23.7M
    monostate monostate_val{};
8387
8388
23.7M
    switch (arg.m_type) {
8389
11.8k
        case detail::arg_type::schar_type:
8390
11.8k
            SCN_VISIT(signed char);
8391
0
        case detail::arg_type::short_type:
8392
0
            SCN_VISIT(short);
8393
20.8k
        case detail::arg_type::int_type:
8394
20.8k
            SCN_VISIT(int);
8395
0
        case detail::arg_type::long_type:
8396
0
            SCN_VISIT(long);
8397
11.8k
        case detail::arg_type::llong_type:
8398
11.8k
            SCN_VISIT(long long);
8399
11.7k
        case detail::arg_type::uchar_type:
8400
11.7k
            SCN_VISIT(unsigned char);
8401
0
        case detail::arg_type::ushort_type:
8402
0
            SCN_VISIT(unsigned short);
8403
20.7k
        case detail::arg_type::uint_type:
8404
20.7k
            SCN_VISIT(unsigned);
8405
0
        case detail::arg_type::ulong_type:
8406
0
            SCN_VISIT(unsigned long);
8407
11.8k
        case detail::arg_type::ullong_type:
8408
11.8k
            SCN_VISIT(unsigned long long);
8409
8.97k
        case detail::arg_type::pointer_type:
8410
8.97k
            SCN_VISIT(void*);
8411
8.97k
        case detail::arg_type::bool_type:
8412
8.97k
            SCN_VISIT(bool);
8413
0
        case detail::arg_type::narrow_character_type:
8414
0
            SCN_VISIT(char);
8415
8.97k
        case detail::arg_type::wide_character_type:
8416
8.97k
            SCN_VISIT(wchar_t);
8417
0
        case detail::arg_type::code_point_type:
8418
0
            SCN_VISIT(char32_t);
8419
22.1k
        case detail::arg_type::float_type:
8420
22.1k
            SCN_VISIT(float);
8421
31.1k
        case detail::arg_type::double_type:
8422
31.1k
            SCN_VISIT(double);
8423
22.2k
        case detail::arg_type::ldouble_type:
8424
22.2k
            SCN_VISIT(long double);
8425
0
        case detail::arg_type::narrow_string_view_type:
8426
0
            SCN_VISIT(std::string_view);
8427
8.97k
        case detail::arg_type::narrow_string_type:
8428
8.97k
            SCN_VISIT(std::string);
8429
11.7M
        case detail::arg_type::wide_string_view_type:
8430
11.7M
            SCN_VISIT(std::wstring_view);
8431
11.7M
        case detail::arg_type::wide_string_type:
8432
11.7M
            SCN_VISIT(std::wstring);
8433
0
        case detail::arg_type::narrow_regex_matches_type:
8434
0
            SCN_VISIT(regex_matches);
8435
0
        case detail::arg_type::wide_regex_matches_type:
8436
0
            SCN_VISIT(wregex_matches);
8437
8438
0
        case detail::arg_type::custom_type:
8439
0
#if !SCN_DISABLE_TYPE_CUSTOM
8440
0
            return vis(
8441
0
                typename Ctx::arg_type::handle(arg.m_value.custom_value));
8442
#else
8443
            return vis(monostate_val);
8444
#endif
8445
8446
0
            SCN_CLANG_PUSH
8447
0
            SCN_CLANG_IGNORE("-Wcovered-switch-default")
8448
8449
0
            SCN_UNLIKELY_ATTR
8450
0
        case detail::arg_type::none_type:
8451
0
        default: {
8452
0
            return vis(monostate_val);
8453
0
        }
8454
8455
23.7M
            SCN_CLANG_POP
8456
23.7M
    }
8457
8458
0
#undef SCN_VISIT
8459
8460
0
    SCN_ENSURE(false);
8461
0
    SCN_UNREACHABLE;
8462
0
}
Unexecuted instantiation: decltype(auto) scn::v3::visit_scan_arg<scn::v3::impl::custom_reader<scn::v3::basic_scan_context<wchar_t> >, scn::v3::basic_scan_context<wchar_t> >(scn::v3::impl::custom_reader<scn::v3::basic_scan_context<wchar_t> >&&, scn::v3::basic_scan_arg<scn::v3::basic_scan_context<wchar_t> >&)
decltype(auto) scn::v3::visit_scan_arg<scn::v3::impl::arg_reader<scn::v3::impl::basic_contiguous_scan_context<wchar_t> >, scn::v3::basic_scan_context<wchar_t> >(scn::v3::impl::arg_reader<scn::v3::impl::basic_contiguous_scan_context<wchar_t> >&&, scn::v3::basic_scan_arg<scn::v3::basic_scan_context<wchar_t> >&)
Line
Count
Source
8377
16.2M
{
8378
16.2M
#define SCN_VISIT(Type)                                         \
8379
16.2M
    if constexpr (!detail::is_type_disabled<Type>) {            \
8380
16.2M
        return vis(*static_cast<Type*>(arg.m_value.ref_value)); \
8381
16.2M
    }                                                           \
8382
16.2M
    else {                                                      \
8383
16.2M
        return vis(monostate_val);                              \
8384
16.2M
    }
8385
8386
16.2M
    monostate monostate_val{};
8387
8388
16.2M
    switch (arg.m_type) {
8389
47.1k
        case detail::arg_type::schar_type:
8390
47.1k
            SCN_VISIT(signed char);
8391
0
        case detail::arg_type::short_type:
8392
0
            SCN_VISIT(short);
8393
47.7k
        case detail::arg_type::int_type:
8394
47.7k
            SCN_VISIT(int);
8395
0
        case detail::arg_type::long_type:
8396
0
            SCN_VISIT(long);
8397
47.3k
        case detail::arg_type::llong_type:
8398
47.3k
            SCN_VISIT(long long);
8399
47.0k
        case detail::arg_type::uchar_type:
8400
47.0k
            SCN_VISIT(unsigned char);
8401
0
        case detail::arg_type::ushort_type:
8402
0
            SCN_VISIT(unsigned short);
8403
47.5k
        case detail::arg_type::uint_type:
8404
47.5k
            SCN_VISIT(unsigned);
8405
0
        case detail::arg_type::ulong_type:
8406
0
            SCN_VISIT(unsigned long);
8407
47.2k
        case detail::arg_type::ullong_type:
8408
47.2k
            SCN_VISIT(unsigned long long);
8409
444
        case detail::arg_type::pointer_type:
8410
444
            SCN_VISIT(void*);
8411
450
        case detail::arg_type::bool_type:
8412
450
            SCN_VISIT(bool);
8413
0
        case detail::arg_type::narrow_character_type:
8414
0
            SCN_VISIT(char);
8415
444
        case detail::arg_type::wide_character_type:
8416
444
            SCN_VISIT(wchar_t);
8417
0
        case detail::arg_type::code_point_type:
8418
0
            SCN_VISIT(char32_t);
8419
71.0k
        case detail::arg_type::float_type:
8420
71.0k
            SCN_VISIT(float);
8421
71.6k
        case detail::arg_type::double_type:
8422
71.6k
            SCN_VISIT(double);
8423
71.2k
        case detail::arg_type::ldouble_type:
8424
71.2k
            SCN_VISIT(long double);
8425
0
        case detail::arg_type::narrow_string_view_type:
8426
0
            SCN_VISIT(std::string_view);
8427
444
        case detail::arg_type::narrow_string_type:
8428
444
            SCN_VISIT(std::string);
8429
7.85M
        case detail::arg_type::wide_string_view_type:
8430
7.85M
            SCN_VISIT(std::wstring_view);
8431
7.85M
        case detail::arg_type::wide_string_type:
8432
7.85M
            SCN_VISIT(std::wstring);
8433
0
        case detail::arg_type::narrow_regex_matches_type:
8434
0
            SCN_VISIT(regex_matches);
8435
0
        case detail::arg_type::wide_regex_matches_type:
8436
0
            SCN_VISIT(wregex_matches);
8437
8438
0
        case detail::arg_type::custom_type:
8439
0
#if !SCN_DISABLE_TYPE_CUSTOM
8440
0
            return vis(
8441
0
                typename Ctx::arg_type::handle(arg.m_value.custom_value));
8442
#else
8443
            return vis(monostate_val);
8444
#endif
8445
8446
0
            SCN_CLANG_PUSH
8447
0
            SCN_CLANG_IGNORE("-Wcovered-switch-default")
8448
8449
0
            SCN_UNLIKELY_ATTR
8450
0
        case detail::arg_type::none_type:
8451
0
        default: {
8452
0
            return vis(monostate_val);
8453
0
        }
8454
8455
16.2M
            SCN_CLANG_POP
8456
16.2M
    }
8457
8458
0
#undef SCN_VISIT
8459
8460
0
    SCN_ENSURE(false);
8461
0
    SCN_UNREACHABLE;
8462
0
}
decltype(auto) scn::v3::visit_scan_arg<scn::v3::impl::default_arg_reader<scn::v3::basic_scan_context<wchar_t> >, scn::v3::basic_scan_context<wchar_t> >(scn::v3::impl::default_arg_reader<scn::v3::basic_scan_context<wchar_t> >&&, scn::v3::basic_scan_arg<scn::v3::basic_scan_context<wchar_t> >&)
Line
Count
Source
8377
11.9M
{
8378
11.9M
#define SCN_VISIT(Type)                                         \
8379
11.9M
    if constexpr (!detail::is_type_disabled<Type>) {            \
8380
11.9M
        return vis(*static_cast<Type*>(arg.m_value.ref_value)); \
8381
11.9M
    }                                                           \
8382
11.9M
    else {                                                      \
8383
11.9M
        return vis(monostate_val);                              \
8384
11.9M
    }
8385
8386
11.9M
    monostate monostate_val{};
8387
8388
11.9M
    switch (arg.m_type) {
8389
11.8k
        case detail::arg_type::schar_type:
8390
11.8k
            SCN_VISIT(signed char);
8391
0
        case detail::arg_type::short_type:
8392
0
            SCN_VISIT(short);
8393
11.8k
        case detail::arg_type::int_type:
8394
11.8k
            SCN_VISIT(int);
8395
0
        case detail::arg_type::long_type:
8396
0
            SCN_VISIT(long);
8397
11.8k
        case detail::arg_type::llong_type:
8398
11.8k
            SCN_VISIT(long long);
8399
11.7k
        case detail::arg_type::uchar_type:
8400
11.7k
            SCN_VISIT(unsigned char);
8401
0
        case detail::arg_type::ushort_type:
8402
0
            SCN_VISIT(unsigned short);
8403
11.8k
        case detail::arg_type::uint_type:
8404
11.8k
            SCN_VISIT(unsigned);
8405
0
        case detail::arg_type::ulong_type:
8406
0
            SCN_VISIT(unsigned long);
8407
11.8k
        case detail::arg_type::ullong_type:
8408
11.8k
            SCN_VISIT(unsigned long long);
8409
0
        case detail::arg_type::pointer_type:
8410
0
            SCN_VISIT(void*);
8411
0
        case detail::arg_type::bool_type:
8412
0
            SCN_VISIT(bool);
8413
0
        case detail::arg_type::narrow_character_type:
8414
0
            SCN_VISIT(char);
8415
0
        case detail::arg_type::wide_character_type:
8416
0
            SCN_VISIT(wchar_t);
8417
0
        case detail::arg_type::code_point_type:
8418
0
            SCN_VISIT(char32_t);
8419
22.0k
        case detail::arg_type::float_type:
8420
22.0k
            SCN_VISIT(float);
8421
22.1k
        case detail::arg_type::double_type:
8422
22.1k
            SCN_VISIT(double);
8423
22.1k
        case detail::arg_type::ldouble_type:
8424
22.1k
            SCN_VISIT(long double);
8425
0
        case detail::arg_type::narrow_string_view_type:
8426
0
            SCN_VISIT(std::string_view);
8427
0
        case detail::arg_type::narrow_string_type:
8428
0
            SCN_VISIT(std::string);
8429
0
        case detail::arg_type::wide_string_view_type:
8430
0
            SCN_VISIT(std::wstring_view);
8431
11.7M
        case detail::arg_type::wide_string_type:
8432
11.7M
            SCN_VISIT(std::wstring);
8433
0
        case detail::arg_type::narrow_regex_matches_type:
8434
0
            SCN_VISIT(regex_matches);
8435
0
        case detail::arg_type::wide_regex_matches_type:
8436
0
            SCN_VISIT(wregex_matches);
8437
8438
0
        case detail::arg_type::custom_type:
8439
0
#if !SCN_DISABLE_TYPE_CUSTOM
8440
0
            return vis(
8441
0
                typename Ctx::arg_type::handle(arg.m_value.custom_value));
8442
#else
8443
            return vis(monostate_val);
8444
#endif
8445
8446
0
            SCN_CLANG_PUSH
8447
0
            SCN_CLANG_IGNORE("-Wcovered-switch-default")
8448
8449
0
            SCN_UNLIKELY_ATTR
8450
0
        case detail::arg_type::none_type:
8451
0
        default: {
8452
0
            return vis(monostate_val);
8453
0
        }
8454
8455
11.9M
            SCN_CLANG_POP
8456
11.9M
    }
8457
8458
0
#undef SCN_VISIT
8459
8460
0
    SCN_ENSURE(false);
8461
0
    SCN_UNREACHABLE;
8462
0
}
decltype(auto) scn::v3::visit_scan_arg<scn::v3::impl::arg_reader<scn::v3::basic_scan_context<wchar_t> >, scn::v3::basic_scan_context<wchar_t> >(scn::v3::impl::arg_reader<scn::v3::basic_scan_context<wchar_t> >&&, scn::v3::basic_scan_arg<scn::v3::basic_scan_context<wchar_t> >&)
Line
Count
Source
8377
8.34M
{
8378
8.34M
#define SCN_VISIT(Type)                                         \
8379
8.34M
    if constexpr (!detail::is_type_disabled<Type>) {            \
8380
8.34M
        return vis(*static_cast<Type*>(arg.m_value.ref_value)); \
8381
8.34M
    }                                                           \
8382
8.34M
    else {                                                      \
8383
8.34M
        return vis(monostate_val);                              \
8384
8.34M
    }
8385
8386
8.34M
    monostate monostate_val{};
8387
8388
8.34M
    switch (arg.m_type) {
8389
47.1k
        case detail::arg_type::schar_type:
8390
47.1k
            SCN_VISIT(signed char);
8391
0
        case detail::arg_type::short_type:
8392
0
            SCN_VISIT(short);
8393
47.2k
        case detail::arg_type::int_type:
8394
47.2k
            SCN_VISIT(int);
8395
0
        case detail::arg_type::long_type:
8396
0
            SCN_VISIT(long);
8397
47.3k
        case detail::arg_type::llong_type:
8398
47.3k
            SCN_VISIT(long long);
8399
47.0k
        case detail::arg_type::uchar_type:
8400
47.0k
            SCN_VISIT(unsigned char);
8401
0
        case detail::arg_type::ushort_type:
8402
0
            SCN_VISIT(unsigned short);
8403
47.1k
        case detail::arg_type::uint_type:
8404
47.1k
            SCN_VISIT(unsigned);
8405
0
        case detail::arg_type::ulong_type:
8406
0
            SCN_VISIT(unsigned long);
8407
47.2k
        case detail::arg_type::ullong_type:
8408
47.2k
            SCN_VISIT(unsigned long long);
8409
0
        case detail::arg_type::pointer_type:
8410
0
            SCN_VISIT(void*);
8411
0
        case detail::arg_type::bool_type:
8412
0
            SCN_VISIT(bool);
8413
0
        case detail::arg_type::narrow_character_type:
8414
0
            SCN_VISIT(char);
8415
0
        case detail::arg_type::wide_character_type:
8416
0
            SCN_VISIT(wchar_t);
8417
0
        case detail::arg_type::code_point_type:
8418
0
            SCN_VISIT(char32_t);
8419
71.0k
        case detail::arg_type::float_type:
8420
71.0k
            SCN_VISIT(float);
8421
71.1k
        case detail::arg_type::double_type:
8422
71.1k
            SCN_VISIT(double);
8423
71.2k
        case detail::arg_type::ldouble_type:
8424
71.2k
            SCN_VISIT(long double);
8425
0
        case detail::arg_type::narrow_string_view_type:
8426
0
            SCN_VISIT(std::string_view);
8427
0
        case detail::arg_type::narrow_string_type:
8428
0
            SCN_VISIT(std::string);
8429
0
        case detail::arg_type::wide_string_view_type:
8430
0
            SCN_VISIT(std::wstring_view);
8431
7.85M
        case detail::arg_type::wide_string_type:
8432
7.85M
            SCN_VISIT(std::wstring);
8433
0
        case detail::arg_type::narrow_regex_matches_type:
8434
0
            SCN_VISIT(regex_matches);
8435
0
        case detail::arg_type::wide_regex_matches_type:
8436
0
            SCN_VISIT(wregex_matches);
8437
8438
0
        case detail::arg_type::custom_type:
8439
0
#if !SCN_DISABLE_TYPE_CUSTOM
8440
0
            return vis(
8441
0
                typename Ctx::arg_type::handle(arg.m_value.custom_value));
8442
#else
8443
            return vis(monostate_val);
8444
#endif
8445
8446
0
            SCN_CLANG_PUSH
8447
0
            SCN_CLANG_IGNORE("-Wcovered-switch-default")
8448
8449
0
            SCN_UNLIKELY_ATTR
8450
0
        case detail::arg_type::none_type:
8451
0
        default: {
8452
0
            return vis(monostate_val);
8453
0
        }
8454
8455
8.34M
            SCN_CLANG_POP
8456
8.34M
    }
8457
8458
0
#undef SCN_VISIT
8459
8460
0
    SCN_ENSURE(false);
8461
0
    SCN_UNREACHABLE;
8462
0
}
8463
8464
/////////////////////////////////////////////////////////////////
8465
// vscan
8466
/////////////////////////////////////////////////////////////////
8467
8468
/**
8469
 * \defgroup vscan Type-erased scanning API
8470
 *
8471
 * \brief Lower-level scanning API with type-erased arguments
8472
 */
8473
8474
namespace detail {
8475
template <typename Source>
8476
using scan_result_value_type =
8477
    std::conditional_t<std::is_same_v<remove_cvref_t<Source>, std::FILE*>,
8478
                       std::FILE*,
8479
                       borrowed_tail_subrange_t<Source>>;
8480
}
8481
8482
/**
8483
 * Result type returned by `vscan`.
8484
 *
8485
 * The value type of the `scan_expected` is `FILE*` if `Source` is `FILE*`,
8486
 * `detail::borrowed_tail_subrange_t<Source>` otherwise.
8487
 *
8488
 * \ingroup vscan
8489
 */
8490
template <typename Source>
8491
using vscan_result = scan_expected<detail::scan_result_value_type<Source>>;
8492
8493
namespace detail {
8494
scan_expected<std::ptrdiff_t> vscan_impl(std::string_view source,
8495
                                         std::string_view format,
8496
                                         scan_args args);
8497
scan_expected<std::ptrdiff_t> vscan_impl(scan_buffer& source,
8498
                                         std::string_view format,
8499
                                         scan_args args);
8500
8501
scan_expected<std::ptrdiff_t> vscan_impl(std::wstring_view source,
8502
                                         std::wstring_view format,
8503
                                         wscan_args args);
8504
scan_expected<std::ptrdiff_t> vscan_impl(wscan_buffer& source,
8505
                                         std::wstring_view format,
8506
                                         wscan_args args);
8507
8508
#if !SCN_DISABLE_LOCALE
8509
template <typename Locale>
8510
scan_expected<std::ptrdiff_t> vscan_localized_impl(const Locale& loc,
8511
                                                   std::string_view source,
8512
                                                   std::string_view format,
8513
                                                   scan_args args);
8514
template <typename Locale>
8515
scan_expected<std::ptrdiff_t> vscan_localized_impl(const Locale& loc,
8516
                                                   scan_buffer& source,
8517
                                                   std::string_view format,
8518
                                                   scan_args args);
8519
8520
template <typename Locale>
8521
scan_expected<std::ptrdiff_t> vscan_localized_impl(const Locale& loc,
8522
                                                   std::wstring_view source,
8523
                                                   std::wstring_view format,
8524
                                                   wscan_args args);
8525
template <typename Locale>
8526
scan_expected<std::ptrdiff_t> vscan_localized_impl(const Locale& loc,
8527
                                                   wscan_buffer& source,
8528
                                                   std::wstring_view format,
8529
                                                   wscan_args args);
8530
#endif
8531
8532
scan_expected<std::ptrdiff_t> vscan_value_impl(
8533
    std::string_view source,
8534
    basic_scan_arg<scan_context> arg);
8535
scan_expected<std::ptrdiff_t> vscan_value_impl(
8536
    scan_buffer& source,
8537
    basic_scan_arg<scan_context> arg);
8538
8539
scan_expected<std::ptrdiff_t> vscan_value_impl(
8540
    std::wstring_view source,
8541
    basic_scan_arg<wscan_context> arg);
8542
scan_expected<std::ptrdiff_t> vscan_value_impl(
8543
    wscan_buffer& source,
8544
    basic_scan_arg<wscan_context> arg);
8545
8546
template <typename Range, typename CharT>
8547
auto vscan_generic(Range&& range,
8548
                   std::basic_string_view<CharT> format,
8549
                   basic_scan_args<basic_scan_context<CharT>> args)
8550
    -> vscan_result<Range>
8551
28.8M
{
8552
28.8M
    auto buffer = make_scan_buffer(range);
8553
8554
28.8M
    auto result = vscan_impl(buffer, format, args);
8555
28.8M
    if (SCN_UNLIKELY(!result)) {
8556
1.17M
        return unexpected(result.error());
8557
1.17M
    }
8558
27.6M
    return make_vscan_result_range(SCN_FWD(range), *result);
8559
28.8M
}
_ZN3scn2v36detail13vscan_genericIRNSt3__117basic_string_viewIcNS3_11char_traitsIcEEEEcEENS0_13scan_expectedINS3_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESF_NS1_22borrowed_tail_subrangeISB_Xsr6rangesE14borrowed_rangeISB_EEE4typeEE4typeEEEOSB_NS4_IT0_NS5_ISN_EEEENS0_15basic_scan_argsINS0_18basic_scan_contextISN_EEEE
Line
Count
Source
8551
37.6k
{
8552
37.6k
    auto buffer = make_scan_buffer(range);
8553
8554
37.6k
    auto result = vscan_impl(buffer, format, args);
8555
37.6k
    if (SCN_UNLIKELY(!result)) {
8556
36.3k
        return unexpected(result.error());
8557
36.3k
    }
8558
1.33k
    return make_vscan_result_range(SCN_FWD(range), *result);
8559
37.6k
}
_ZN3scn2v36detail13vscan_genericIRNSt3__117basic_string_viewIwNS3_11char_traitsIwEEEEwEENS0_13scan_expectedINS3_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESF_NS1_22borrowed_tail_subrangeISB_Xsr6rangesE14borrowed_rangeISB_EEE4typeEE4typeEEEOSB_NS4_IT0_NS5_ISN_EEEENS0_15basic_scan_argsINS0_18basic_scan_contextISN_EEEE
Line
Count
Source
8551
75.3k
{
8552
75.3k
    auto buffer = make_scan_buffer(range);
8553
8554
75.3k
    auto result = vscan_impl(buffer, format, args);
8555
75.3k
    if (SCN_UNLIKELY(!result)) {
8556
75.2k
        return unexpected(result.error());
8557
75.2k
    }
8558
120
    return make_vscan_result_range(SCN_FWD(range), *result);
8559
75.3k
}
_ZN3scn2v36detail13vscan_genericINS0_6ranges6detail9subrange_8subrangeIPKcS8_EEcEENS0_13scan_expectedINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESH_NS1_22borrowed_tail_subrangeISD_Xsr6rangesE14borrowed_rangeISD_EEE4typeEE4typeEEEOSD_NSB_17basic_string_viewIT0_NSB_11char_traitsISQ_EEEENS0_15basic_scan_argsINS0_18basic_scan_contextISQ_EEEE
Line
Count
Source
8551
2.24M
{
8552
2.24M
    auto buffer = make_scan_buffer(range);
8553
8554
2.24M
    auto result = vscan_impl(buffer, format, args);
8555
2.24M
    if (SCN_UNLIKELY(!result)) {
8556
179k
        return unexpected(result.error());
8557
179k
    }
8558
2.06M
    return make_vscan_result_range(SCN_FWD(range), *result);
8559
2.24M
}
_ZN3scn2v36detail13vscan_genericINS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS9_PKSA_lLl4096EEESE_EEcEENS0_13scan_expectedINS7_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESM_NS1_22borrowed_tail_subrangeISI_Xsr6rangesE14borrowed_rangeISI_EEE4typeEE4typeEEEOSI_NS7_17basic_string_viewIT0_NS7_11char_traitsISV_EEEENS0_15basic_scan_argsINS0_18basic_scan_contextISV_EEEE
Line
Count
Source
8551
2.18M
{
8552
2.18M
    auto buffer = make_scan_buffer(range);
8553
8554
2.18M
    auto result = vscan_impl(buffer, format, args);
8555
2.18M
    if (SCN_UNLIKELY(!result)) {
8556
175k
        return unexpected(result.error());
8557
175k
    }
8558
2.01M
    return make_vscan_result_range(SCN_FWD(range), *result);
8559
2.18M
}
_ZN3scn2v36detail13vscan_genericINS0_6ranges6detail9subrange_8subrangeIPKwS8_EEwEENS0_13scan_expectedINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESH_NS1_22borrowed_tail_subrangeISD_Xsr6rangesE14borrowed_rangeISD_EEE4typeEE4typeEEEOSD_NSB_17basic_string_viewIT0_NSB_11char_traitsISQ_EEEENS0_15basic_scan_argsINS0_18basic_scan_contextISQ_EEEE
Line
Count
Source
8551
16.0M
{
8552
16.0M
    auto buffer = make_scan_buffer(range);
8553
8554
16.0M
    auto result = vscan_impl(buffer, format, args);
8555
16.0M
    if (SCN_UNLIKELY(!result)) {
8556
359k
        return unexpected(result.error());
8557
359k
    }
8558
15.7M
    return make_vscan_result_range(SCN_FWD(range), *result);
8559
16.0M
}
_ZN3scn2v36detail13vscan_genericINS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIwPKwRS9_PKSA_lLl1024EEESE_EEwEENS0_13scan_expectedINS7_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESM_NS1_22borrowed_tail_subrangeISI_Xsr6rangesE14borrowed_rangeISI_EEE4typeEE4typeEEEOSI_NS7_17basic_string_viewIT0_NS7_11char_traitsISV_EEEENS0_15basic_scan_argsINS0_18basic_scan_contextISV_EEEE
Line
Count
Source
8551
8.21M
{
8552
8.21M
    auto buffer = make_scan_buffer(range);
8553
8554
8.21M
    auto result = vscan_impl(buffer, format, args);
8555
8.21M
    if (SCN_UNLIKELY(!result)) {
8556
350k
        return unexpected(result.error());
8557
350k
    }
8558
7.86M
    return make_vscan_result_range(SCN_FWD(range), *result);
8559
8.21M
}
8560
8561
template <typename Locale, typename Range, typename CharT>
8562
auto vscan_localized_generic(const Locale& loc,
8563
                             Range&& range,
8564
                             std::basic_string_view<CharT> format,
8565
                             basic_scan_args<basic_scan_context<CharT>> args)
8566
    -> vscan_result<Range>
8567
28.8M
{
8568
28.8M
#if !SCN_DISABLE_LOCALE
8569
28.8M
    auto buffer = detail::make_scan_buffer(range);
8570
8571
28.8M
    SCN_CLANG_PUSH_IGNORE_UNDEFINED_TEMPLATE
8572
28.8M
    auto result = detail::vscan_localized_impl(loc, buffer, format, args);
8573
28.8M
    SCN_CLANG_POP_IGNORE_UNDEFINED_TEMPLATE
8574
8575
28.8M
    if (SCN_UNLIKELY(!result)) {
8576
1.17M
        return unexpected(result.error());
8577
1.17M
    }
8578
27.6M
    return detail::make_vscan_result_range(SCN_FWD(range), *result);
8579
#else
8580
    static_assert(dependent_false<Locale>::value,
8581
                  "Can't use scan(locale, ...) with SCN_DISABLE_LOCALE on");
8582
8583
    return {};
8584
#endif
8585
28.8M
}
_ZN3scn2v36detail23vscan_localized_genericINSt3__16localeERNS3_17basic_string_viewIcNS3_11char_traitsIcEEEEcEENS0_13scan_expectedINS3_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESG_NS1_22borrowed_tail_subrangeISC_Xsr6rangesE14borrowed_rangeISC_EEE4typeEE4typeEEERKT_OSC_NS5_IT1_NS6_ISR_EEEENS0_15basic_scan_argsINS0_18basic_scan_contextISR_EEEE
Line
Count
Source
8567
37.6k
{
8568
37.6k
#if !SCN_DISABLE_LOCALE
8569
37.6k
    auto buffer = detail::make_scan_buffer(range);
8570
8571
37.6k
    SCN_CLANG_PUSH_IGNORE_UNDEFINED_TEMPLATE
8572
37.6k
    auto result = detail::vscan_localized_impl(loc, buffer, format, args);
8573
37.6k
    SCN_CLANG_POP_IGNORE_UNDEFINED_TEMPLATE
8574
8575
37.6k
    if (SCN_UNLIKELY(!result)) {
8576
36.3k
        return unexpected(result.error());
8577
36.3k
    }
8578
1.33k
    return detail::make_vscan_result_range(SCN_FWD(range), *result);
8579
#else
8580
    static_assert(dependent_false<Locale>::value,
8581
                  "Can't use scan(locale, ...) with SCN_DISABLE_LOCALE on");
8582
8583
    return {};
8584
#endif
8585
37.6k
}
_ZN3scn2v36detail23vscan_localized_genericINSt3__16localeERNS3_17basic_string_viewIwNS3_11char_traitsIwEEEEwEENS0_13scan_expectedINS3_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESG_NS1_22borrowed_tail_subrangeISC_Xsr6rangesE14borrowed_rangeISC_EEE4typeEE4typeEEERKT_OSC_NS5_IT1_NS6_ISR_EEEENS0_15basic_scan_argsINS0_18basic_scan_contextISR_EEEE
Line
Count
Source
8567
75.3k
{
8568
75.3k
#if !SCN_DISABLE_LOCALE
8569
75.3k
    auto buffer = detail::make_scan_buffer(range);
8570
8571
75.3k
    SCN_CLANG_PUSH_IGNORE_UNDEFINED_TEMPLATE
8572
75.3k
    auto result = detail::vscan_localized_impl(loc, buffer, format, args);
8573
75.3k
    SCN_CLANG_POP_IGNORE_UNDEFINED_TEMPLATE
8574
8575
75.3k
    if (SCN_UNLIKELY(!result)) {
8576
75.2k
        return unexpected(result.error());
8577
75.2k
    }
8578
120
    return detail::make_vscan_result_range(SCN_FWD(range), *result);
8579
#else
8580
    static_assert(dependent_false<Locale>::value,
8581
                  "Can't use scan(locale, ...) with SCN_DISABLE_LOCALE on");
8582
8583
    return {};
8584
#endif
8585
75.3k
}
_ZN3scn2v36detail23vscan_localized_genericINSt3__16localeENS0_6ranges6detail9subrange_8subrangeIPKcSA_EEcEENS0_13scan_expectedINS3_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESI_NS1_22borrowed_tail_subrangeISE_Xsr6rangesE14borrowed_rangeISE_EEE4typeEE4typeEEERKT_OSE_NS3_17basic_string_viewIT1_NS3_11char_traitsISU_EEEENS0_15basic_scan_argsINS0_18basic_scan_contextISU_EEEE
Line
Count
Source
8567
2.24M
{
8568
2.24M
#if !SCN_DISABLE_LOCALE
8569
2.24M
    auto buffer = detail::make_scan_buffer(range);
8570
8571
2.24M
    SCN_CLANG_PUSH_IGNORE_UNDEFINED_TEMPLATE
8572
2.24M
    auto result = detail::vscan_localized_impl(loc, buffer, format, args);
8573
2.24M
    SCN_CLANG_POP_IGNORE_UNDEFINED_TEMPLATE
8574
8575
2.24M
    if (SCN_UNLIKELY(!result)) {
8576
179k
        return unexpected(result.error());
8577
179k
    }
8578
2.06M
    return detail::make_vscan_result_range(SCN_FWD(range), *result);
8579
#else
8580
    static_assert(dependent_false<Locale>::value,
8581
                  "Can't use scan(locale, ...) with SCN_DISABLE_LOCALE on");
8582
8583
    return {};
8584
#endif
8585
2.24M
}
_ZN3scn2v36detail23vscan_localized_genericINSt3__16localeENS0_6ranges6detail9subrange_8subrangeINS3_16__deque_iteratorIcPKcRSA_PKSB_lLl4096EEESF_EEcEENS0_13scan_expectedINS3_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESN_NS1_22borrowed_tail_subrangeISJ_Xsr6rangesE14borrowed_rangeISJ_EEE4typeEE4typeEEERKT_OSJ_NS3_17basic_string_viewIT1_NS3_11char_traitsISZ_EEEENS0_15basic_scan_argsINS0_18basic_scan_contextISZ_EEEE
Line
Count
Source
8567
2.18M
{
8568
2.18M
#if !SCN_DISABLE_LOCALE
8569
2.18M
    auto buffer = detail::make_scan_buffer(range);
8570
8571
2.18M
    SCN_CLANG_PUSH_IGNORE_UNDEFINED_TEMPLATE
8572
2.18M
    auto result = detail::vscan_localized_impl(loc, buffer, format, args);
8573
2.18M
    SCN_CLANG_POP_IGNORE_UNDEFINED_TEMPLATE
8574
8575
2.18M
    if (SCN_UNLIKELY(!result)) {
8576
175k
        return unexpected(result.error());
8577
175k
    }
8578
2.01M
    return detail::make_vscan_result_range(SCN_FWD(range), *result);
8579
#else
8580
    static_assert(dependent_false<Locale>::value,
8581
                  "Can't use scan(locale, ...) with SCN_DISABLE_LOCALE on");
8582
8583
    return {};
8584
#endif
8585
2.18M
}
_ZN3scn2v36detail23vscan_localized_genericINSt3__16localeENS0_6ranges6detail9subrange_8subrangeIPKwSA_EEwEENS0_13scan_expectedINS3_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESI_NS1_22borrowed_tail_subrangeISE_Xsr6rangesE14borrowed_rangeISE_EEE4typeEE4typeEEERKT_OSE_NS3_17basic_string_viewIT1_NS3_11char_traitsISU_EEEENS0_15basic_scan_argsINS0_18basic_scan_contextISU_EEEE
Line
Count
Source
8567
16.0M
{
8568
16.0M
#if !SCN_DISABLE_LOCALE
8569
16.0M
    auto buffer = detail::make_scan_buffer(range);
8570
8571
16.0M
    SCN_CLANG_PUSH_IGNORE_UNDEFINED_TEMPLATE
8572
16.0M
    auto result = detail::vscan_localized_impl(loc, buffer, format, args);
8573
16.0M
    SCN_CLANG_POP_IGNORE_UNDEFINED_TEMPLATE
8574
8575
16.0M
    if (SCN_UNLIKELY(!result)) {
8576
359k
        return unexpected(result.error());
8577
359k
    }
8578
15.7M
    return detail::make_vscan_result_range(SCN_FWD(range), *result);
8579
#else
8580
    static_assert(dependent_false<Locale>::value,
8581
                  "Can't use scan(locale, ...) with SCN_DISABLE_LOCALE on");
8582
8583
    return {};
8584
#endif
8585
16.0M
}
_ZN3scn2v36detail23vscan_localized_genericINSt3__16localeENS0_6ranges6detail9subrange_8subrangeINS3_16__deque_iteratorIwPKwRSA_PKSB_lLl1024EEESF_EEwEENS0_13scan_expectedINS3_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESN_NS1_22borrowed_tail_subrangeISJ_Xsr6rangesE14borrowed_rangeISJ_EEE4typeEE4typeEEERKT_OSJ_NS3_17basic_string_viewIT1_NS3_11char_traitsISZ_EEEENS0_15basic_scan_argsINS0_18basic_scan_contextISZ_EEEE
Line
Count
Source
8567
8.21M
{
8568
8.21M
#if !SCN_DISABLE_LOCALE
8569
8.21M
    auto buffer = detail::make_scan_buffer(range);
8570
8571
8.21M
    SCN_CLANG_PUSH_IGNORE_UNDEFINED_TEMPLATE
8572
8.21M
    auto result = detail::vscan_localized_impl(loc, buffer, format, args);
8573
8.21M
    SCN_CLANG_POP_IGNORE_UNDEFINED_TEMPLATE
8574
8575
8.21M
    if (SCN_UNLIKELY(!result)) {
8576
350k
        return unexpected(result.error());
8577
350k
    }
8578
7.86M
    return detail::make_vscan_result_range(SCN_FWD(range), *result);
8579
#else
8580
    static_assert(dependent_false<Locale>::value,
8581
                  "Can't use scan(locale, ...) with SCN_DISABLE_LOCALE on");
8582
8583
    return {};
8584
#endif
8585
8.21M
}
8586
8587
template <typename Range, typename CharT>
8588
auto vscan_value_generic(Range&& range,
8589
                         basic_scan_arg<basic_scan_context<CharT>> arg)
8590
    -> vscan_result<Range>
8591
12.7M
{
8592
12.7M
    auto buffer = detail::make_scan_buffer(range);
8593
8594
12.7M
    auto result = detail::vscan_value_impl(buffer, arg);
8595
12.7M
    if (SCN_UNLIKELY(!result)) {
8596
130k
        return unexpected(result.error());
8597
130k
    }
8598
12.6M
    return detail::make_vscan_result_range(SCN_FWD(range), *result);
8599
12.7M
}
_ZN3scn2v36detail19vscan_value_genericINS0_6ranges6detail9subrange_8subrangeIPKcS8_EEcEENS0_13scan_expectedINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESH_NS1_22borrowed_tail_subrangeISD_Xsr6rangesE14borrowed_rangeISD_EEE4typeEE4typeEEEOSD_NS0_14basic_scan_argINS0_18basic_scan_contextIT0_EEEE
Line
Count
Source
8591
463k
{
8592
463k
    auto buffer = detail::make_scan_buffer(range);
8593
8594
463k
    auto result = detail::vscan_value_impl(buffer, arg);
8595
463k
    if (SCN_UNLIKELY(!result)) {
8596
22.1k
        return unexpected(result.error());
8597
22.1k
    }
8598
441k
    return detail::make_vscan_result_range(SCN_FWD(range), *result);
8599
463k
}
_ZN3scn2v36detail19vscan_value_genericINS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS9_PKSA_lLl4096EEESE_EEcEENS0_13scan_expectedINS7_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESM_NS1_22borrowed_tail_subrangeISI_Xsr6rangesE14borrowed_rangeISI_EEE4typeEE4typeEEEOSI_NS0_14basic_scan_argINS0_18basic_scan_contextIT0_EEEE
Line
Count
Source
8591
416k
{
8592
416k
    auto buffer = detail::make_scan_buffer(range);
8593
8594
416k
    auto result = detail::vscan_value_impl(buffer, arg);
8595
416k
    if (SCN_UNLIKELY(!result)) {
8596
21.4k
        return unexpected(result.error());
8597
21.4k
    }
8598
394k
    return detail::make_vscan_result_range(SCN_FWD(range), *result);
8599
416k
}
_ZN3scn2v36detail19vscan_value_genericINS0_6ranges6detail9subrange_8subrangeIPKwS8_EEwEENS0_13scan_expectedINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESH_NS1_22borrowed_tail_subrangeISD_Xsr6rangesE14borrowed_rangeISD_EEE4typeEE4typeEEEOSD_NS0_14basic_scan_argINS0_18basic_scan_contextIT0_EEEE
Line
Count
Source
8591
7.88M
{
8592
7.88M
    auto buffer = detail::make_scan_buffer(range);
8593
8594
7.88M
    auto result = detail::vscan_value_impl(buffer, arg);
8595
7.88M
    if (SCN_UNLIKELY(!result)) {
8596
44.3k
        return unexpected(result.error());
8597
44.3k
    }
8598
7.84M
    return detail::make_vscan_result_range(SCN_FWD(range), *result);
8599
7.88M
}
_ZN3scn2v36detail19vscan_value_genericINS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIwPKwRS9_PKSA_lLl1024EEESE_EEwEENS0_13scan_expectedINS7_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESM_NS1_22borrowed_tail_subrangeISI_Xsr6rangesE14borrowed_rangeISI_EEE4typeEE4typeEEEOSI_NS0_14basic_scan_argINS0_18basic_scan_contextIT0_EEEE
Line
Count
Source
8591
3.96M
{
8592
3.96M
    auto buffer = detail::make_scan_buffer(range);
8593
8594
3.96M
    auto result = detail::vscan_value_impl(buffer, arg);
8595
3.96M
    if (SCN_UNLIKELY(!result)) {
8596
42.8k
        return unexpected(result.error());
8597
42.8k
    }
8598
3.92M
    return detail::make_vscan_result_range(SCN_FWD(range), *result);
8599
3.96M
}
8600
}  // namespace detail
8601
8602
SCN_GCC_PUSH
8603
SCN_GCC_IGNORE("-Wnoexcept")
8604
8605
/**
8606
 * Perform actual scanning from `source`, according to `format`, into the
8607
 * type-erased arguments at `args`. Called by `scan`.
8608
 *
8609
 * \ingroup vscan
8610
 */
8611
template <typename Source>
8612
auto vscan(Source&& source, std::string_view format, scan_args args)
8613
    -> vscan_result<Source>
8614
4.46M
{
8615
4.46M
    return detail::vscan_generic(SCN_FWD(source), format, args);
8616
4.46M
}
_ZN3scn2v35vscanIRNSt3__117basic_string_viewIcNS2_11char_traitsIcEEEEEENS0_13scan_expectedINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESE_NS0_6detail22borrowed_tail_subrangeISA_Xsr6rangesE14borrowed_rangeISA_EEE4typeEE4typeEEEOSA_S6_NS0_15basic_scan_argsINS0_18basic_scan_contextIcEEEE
Line
Count
Source
8614
37.6k
{
8615
37.6k
    return detail::vscan_generic(SCN_FWD(source), format, args);
8616
37.6k
}
_ZN3scn2v35vscanINS0_6ranges6detail9subrange_8subrangeIPKcS7_EEEENS0_13scan_expectedINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESG_NS0_6detail22borrowed_tail_subrangeISC_Xsr6rangesE14borrowed_rangeISC_EEE4typeEE4typeEEEOSC_NSA_17basic_string_viewIcNSA_11char_traitsIcEEEENS0_15basic_scan_argsINS0_18basic_scan_contextIcEEEE
Line
Count
Source
8614
2.24M
{
8615
2.24M
    return detail::vscan_generic(SCN_FWD(source), format, args);
8616
2.24M
}
_ZN3scn2v35vscanINS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS8_PKS9_lLl4096EEESD_EEEENS0_13scan_expectedINS6_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESL_NS0_6detail22borrowed_tail_subrangeISH_Xsr6rangesE14borrowed_rangeISH_EEE4typeEE4typeEEEOSH_NS6_17basic_string_viewIcNS6_11char_traitsIcEEEENS0_15basic_scan_argsINS0_18basic_scan_contextIcEEEE
Line
Count
Source
8614
2.18M
{
8615
2.18M
    return detail::vscan_generic(SCN_FWD(source), format, args);
8616
2.18M
}
8617
8618
/**
8619
 * Perform actual scanning from `source`, according to `format`, into the
8620
 * type-erased arguments at `args`, using `loc`, if requested. Called by
8621
 * `scan`.
8622
 *
8623
 * \ingroup locale
8624
 */
8625
template <typename Source,
8626
          typename Locale,
8627
          typename = std::void_t<decltype(Locale::classic())>>
8628
auto vscan(const Locale& loc,
8629
           Source&& source,
8630
           std::string_view format,
8631
           scan_args args) -> vscan_result<Source>
8632
4.46M
{
8633
4.46M
    return detail::vscan_localized_generic(loc, SCN_FWD(source), format, args);
8634
4.46M
}
_ZN3scn2v35vscanIRNSt3__117basic_string_viewIcNS2_11char_traitsIcEEEENS2_6localeEvEENS0_13scan_expectedINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESF_NS0_6detail22borrowed_tail_subrangeISB_Xsr6rangesE14borrowed_rangeISB_EEE4typeEE4typeEEERKT0_OSB_S6_NS0_15basic_scan_argsINS0_18basic_scan_contextIcEEEE
Line
Count
Source
8632
37.6k
{
8633
37.6k
    return detail::vscan_localized_generic(loc, SCN_FWD(source), format, args);
8634
37.6k
}
_ZN3scn2v35vscanINS0_6ranges6detail9subrange_8subrangeIPKcS7_EENSt3__16localeEvEENS0_13scan_expectedINS9_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESH_NS0_6detail22borrowed_tail_subrangeISD_Xsr6rangesE14borrowed_rangeISD_EEE4typeEE4typeEEERKT0_OSD_NS9_17basic_string_viewIcNS9_11char_traitsIcEEEENS0_15basic_scan_argsINS0_18basic_scan_contextIcEEEE
Line
Count
Source
8632
2.24M
{
8633
2.24M
    return detail::vscan_localized_generic(loc, SCN_FWD(source), format, args);
8634
2.24M
}
_ZN3scn2v35vscanINS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS8_PKS9_lLl4096EEESD_EENS6_6localeEvEENS0_13scan_expectedINS6_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESM_NS0_6detail22borrowed_tail_subrangeISI_Xsr6rangesE14borrowed_rangeISI_EEE4typeEE4typeEEERKT0_OSI_NS6_17basic_string_viewIcNS6_11char_traitsIcEEEENS0_15basic_scan_argsINS0_18basic_scan_contextIcEEEE
Line
Count
Source
8632
2.18M
{
8633
2.18M
    return detail::vscan_localized_generic(loc, SCN_FWD(source), format, args);
8634
2.18M
}
8635
8636
/**
8637
 * Perform actual scanning from `source` into the type-erased argument at
8638
 * `arg`. Called by `scan_value`.
8639
 *
8640
 * \ingroup vscan
8641
 */
8642
template <typename Source>
8643
auto vscan_value(Source&& source, basic_scan_arg<scan_context> arg)
8644
    -> vscan_result<Source>
8645
879k
{
8646
879k
    return detail::vscan_value_generic(SCN_FWD(source), arg);
8647
879k
}
_ZN3scn2v311vscan_valueINS0_6ranges6detail9subrange_8subrangeIPKcS7_EEEENS0_13scan_expectedINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESG_NS0_6detail22borrowed_tail_subrangeISC_Xsr6rangesE14borrowed_rangeISC_EEE4typeEE4typeEEEOSC_NS0_14basic_scan_argINS0_18basic_scan_contextIcEEEE
Line
Count
Source
8645
463k
{
8646
463k
    return detail::vscan_value_generic(SCN_FWD(source), arg);
8647
463k
}
_ZN3scn2v311vscan_valueINS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS8_PKS9_lLl4096EEESD_EEEENS0_13scan_expectedINS6_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESL_NS0_6detail22borrowed_tail_subrangeISH_Xsr6rangesE14borrowed_rangeISH_EEE4typeEE4typeEEEOSH_NS0_14basic_scan_argINS0_18basic_scan_contextIcEEEE
Line
Count
Source
8645
416k
{
8646
416k
    return detail::vscan_value_generic(SCN_FWD(source), arg);
8647
416k
}
8648
8649
/**
8650
 * Perform actual scanning from `stdin`, according to `format`, into the
8651
 * type-erased arguments at `args`. Called by `input`.
8652
 *
8653
 * \ingroup vscan
8654
 */
8655
scan_error vinput(std::string_view format, scan_args args);
8656
8657
namespace detail {
8658
template <typename T>
8659
auto scan_int_impl(std::string_view source, T& value, int base)
8660
    -> scan_expected<std::string_view::iterator>;
8661
8662
template <typename T>
8663
auto scan_int_exhaustive_valid_impl(std::string_view source) -> T;
8664
8665
#if !SCN_DISABLE_TYPE_SCHAR
8666
extern template auto scan_int_impl(std::string_view source,
8667
                                   signed char& value,
8668
                                   int base)
8669
    -> scan_expected<std::string_view::iterator>;
8670
extern template auto scan_int_exhaustive_valid_impl(std::string_view)
8671
    -> signed char;
8672
#endif
8673
#if !SCN_DISABLE_TYPE_SHORT
8674
extern template auto scan_int_impl(std::string_view source,
8675
                                   short& value,
8676
                                   int base)
8677
    -> scan_expected<std::string_view::iterator>;
8678
extern template auto scan_int_exhaustive_valid_impl(std::string_view) -> short;
8679
#endif
8680
#if !SCN_DISABLE_TYPE_INT
8681
extern template auto scan_int_impl(std::string_view source,
8682
                                   int& value,
8683
                                   int base)
8684
    -> scan_expected<std::string_view::iterator>;
8685
extern template auto scan_int_exhaustive_valid_impl(std::string_view) -> int;
8686
#endif
8687
#if !SCN_DISABLE_TYPE_LONG
8688
extern template auto scan_int_impl(std::string_view source,
8689
                                   long& value,
8690
                                   int base)
8691
    -> scan_expected<std::string_view::iterator>;
8692
extern template auto scan_int_exhaustive_valid_impl(std::string_view) -> long;
8693
#endif
8694
#if !SCN_DISABLE_TYPE_LONG_LONG
8695
extern template auto scan_int_impl(std::string_view source,
8696
                                   long long& value,
8697
                                   int base)
8698
    -> scan_expected<std::string_view::iterator>;
8699
extern template auto scan_int_exhaustive_valid_impl(std::string_view)
8700
    -> long long;
8701
#endif
8702
#if !SCN_DISABLE_TYPE_UCHAR
8703
extern template auto scan_int_impl(std::string_view source,
8704
                                   unsigned char& value,
8705
                                   int base)
8706
    -> scan_expected<std::string_view::iterator>;
8707
extern template auto scan_int_exhaustive_valid_impl(std::string_view)
8708
    -> unsigned char;
8709
#endif
8710
#if !SCN_DISABLE_TYPE_USHORT
8711
extern template auto scan_int_impl(std::string_view source,
8712
                                   unsigned short& value,
8713
                                   int base)
8714
    -> scan_expected<std::string_view::iterator>;
8715
extern template auto scan_int_exhaustive_valid_impl(std::string_view)
8716
    -> unsigned short;
8717
#endif
8718
#if !SCN_DISABLE_TYPE_UINT
8719
extern template auto scan_int_impl(std::string_view source,
8720
                                   unsigned int& value,
8721
                                   int base)
8722
    -> scan_expected<std::string_view::iterator>;
8723
extern template auto scan_int_exhaustive_valid_impl(std::string_view)
8724
    -> unsigned int;
8725
#endif
8726
#if !SCN_DISABLE_TYPE_ULONG
8727
extern template auto scan_int_impl(std::string_view source,
8728
                                   unsigned long& value,
8729
                                   int base)
8730
    -> scan_expected<std::string_view::iterator>;
8731
extern template auto scan_int_exhaustive_valid_impl(std::string_view)
8732
    -> unsigned long;
8733
#endif
8734
#if !SCN_DISABLE_TYPE_ULONG_LONG
8735
extern template auto scan_int_impl(std::string_view source,
8736
                                   unsigned long long& value,
8737
                                   int base)
8738
    -> scan_expected<std::string_view::iterator>;
8739
extern template auto scan_int_exhaustive_valid_impl(std::string_view)
8740
    -> unsigned long long;
8741
#endif
8742
8743
}  // namespace detail
8744
8745
SCN_GCC_POP  // -Wnoexcept
8746
8747
    // dummy namespace to reset formatting
8748
    namespace detail
8749
{
8750
}
8751
8752
/////////////////////////////////////////////////////////////////
8753
// scan
8754
/////////////////////////////////////////////////////////////////
8755
8756
/**
8757
 * Convenience function to construct the value to return from `scan`,
8758
 * based on the return value of `vscan`, and the argument store.
8759
 *
8760
 * Takes its arguments by rvalue reference to disallow extraneous copying.
8761
 *
8762
 * Note: Because `vscan` places the values it scanned into the argument
8763
 * store passed to it, the call to `make_scan_result` needs to happen
8764
 * strictly after calling `vscan`. This means, that this is UB:
8765
 * `return scn::make_scan_result(scn::vscan(...), std::move(args.args()));`
8766
 *
8767
 * Example:
8768
 * \code{.cpp}
8769
 * auto args = scn::make_scan_args<scan_context, Args...>();
8770
 * auto result = scn::vscan(std::forward<Source>(source), format, args);
8771
 * return scn::make_scan_result(std::move(result), std::move(args.args()));
8772
 * \endcode
8773
 *
8774
 * \ingroup result
8775
 */
8776
template <typename Result, typename... Args>
8777
auto make_scan_result(scan_expected<Result>&& result,
8778
                      std::tuple<Args...>&& args)
8779
    -> scan_expected<scan_result<Result, Args...>>
8780
57.6M
{
8781
57.6M
    if (SCN_UNLIKELY(!result)) {
8782
2.35M
        return unexpected(result.error());
8783
2.35M
    }
8784
55.2M
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
57.6M
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, char> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, char>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >&&, std::__1::tuple<char>&&)
Line
Count
Source
8780
8.37k
{
8781
8.37k
    if (SCN_UNLIKELY(!result)) {
8782
8.22k
        return unexpected(result.error());
8783
8.22k
    }
8784
146
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
8.37k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, int> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, int>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >&&, std::__1::tuple<int>&&)
Line
Count
Source
8780
401k
{
8781
401k
    if (SCN_UNLIKELY(!result)) {
8782
47.2k
        return unexpected(result.error());
8783
47.2k
    }
8784
354k
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
401k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >&&, std::__1::tuple<unsigned int>&&)
Line
Count
Source
8780
348k
{
8781
348k
    if (SCN_UNLIKELY(!result)) {
8782
47.2k
        return unexpected(result.error());
8783
47.2k
    }
8784
300k
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
348k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, double> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, double>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >&&, std::__1::tuple<double>&&)
Line
Count
Source
8780
734k
{
8781
734k
    if (SCN_UNLIKELY(!result)) {
8782
44.1k
        return unexpected(result.error());
8783
44.1k
    }
8784
689k
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
734k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, bool> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, bool>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >&&, std::__1::tuple<bool>&&)
Line
Count
Source
8780
8.37k
{
8781
8.37k
    if (SCN_UNLIKELY(!result)) {
8782
8.37k
        return unexpected(result.error());
8783
8.37k
    }
8784
0
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
8.37k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, void*> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, void*>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >&&, std::__1::tuple<void*>&&)
Line
Count
Source
8780
8.37k
{
8781
8.37k
    if (SCN_UNLIKELY(!result)) {
8782
8.37k
        return unexpected(result.error());
8783
8.37k
    }
8784
0
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
8.37k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >&&, std::__1::tuple<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
8780
138k
{
8781
138k
    if (SCN_UNLIKELY(!result)) {
8782
16.7k
        return unexpected(result.error());
8783
16.7k
    }
8784
121k
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
138k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > > > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >&&, std::__1::tuple<std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&&)
Line
Count
Source
8780
8.37k
{
8781
8.37k
    if (SCN_UNLIKELY(!result)) {
8782
7.53k
        return unexpected(result.error());
8783
7.53k
    }
8784
842
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
8.37k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > > > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >&&, std::__1::tuple<std::__1::basic_string_view<char, std::__1::char_traits<char> > >&&)
Line
Count
Source
8780
138k
{
8781
138k
    if (SCN_UNLIKELY(!result)) {
8782
16.7k
        return unexpected(result.error());
8783
16.7k
    }
8784
121k
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
138k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >&&, std::__1::tuple<wchar_t>&&)
Line
Count
Source
8780
16.7k
{
8781
16.7k
    if (SCN_UNLIKELY(!result)) {
8782
16.6k
        return unexpected(result.error());
8783
16.6k
    }
8784
60
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
16.7k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >&&, std::__1::tuple<int>&&)
Line
Count
Source
8780
95.2k
{
8781
95.2k
    if (SCN_UNLIKELY(!result)) {
8782
94.5k
        return unexpected(result.error());
8783
94.5k
    }
8784
656
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
95.2k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >&&, std::__1::tuple<unsigned int>&&)
Line
Count
Source
8780
95.1k
{
8781
95.1k
    if (SCN_UNLIKELY(!result)) {
8782
94.5k
        return unexpected(result.error());
8783
94.5k
    }
8784
522
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
95.1k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >&&, std::__1::tuple<double>&&)
Line
Count
Source
8780
102k
{
8781
102k
    if (SCN_UNLIKELY(!result)) {
8782
88.3k
        return unexpected(result.error());
8783
88.3k
    }
8784
14.2k
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
102k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, bool> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, bool>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >&&, std::__1::tuple<bool>&&)
Line
Count
Source
8780
16.7k
{
8781
16.7k
    if (SCN_UNLIKELY(!result)) {
8782
16.7k
        return unexpected(result.error());
8783
16.7k
    }
8784
0
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
16.7k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void*> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void*>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >&&, std::__1::tuple<void*>&&)
Line
Count
Source
8780
16.7k
{
8781
16.7k
    if (SCN_UNLIKELY(!result)) {
8782
16.7k
        return unexpected(result.error());
8783
16.7k
    }
8784
0
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
16.7k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >&&, std::__1::tuple<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
8780
16.7k
{
8781
16.7k
    if (SCN_UNLIKELY(!result)) {
8782
16.6k
        return unexpected(result.error());
8783
16.6k
    }
8784
60
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
16.7k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > > > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >&&, std::__1::tuple<std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&&)
Line
Count
Source
8780
15.7M
{
8781
15.7M
    if (SCN_UNLIKELY(!result)) {
8782
35.1k
        return unexpected(result.error());
8783
35.1k
    }
8784
15.6M
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
15.7M
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > > > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >&&, std::__1::tuple<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >&&)
Line
Count
Source
8780
15.7M
{
8781
15.7M
    if (SCN_UNLIKELY(!result)) {
8782
35.1k
        return unexpected(result.error());
8783
35.1k
    }
8784
15.6M
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
15.7M
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, signed char> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, signed char>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >&&, std::__1::tuple<signed char>&&)
Line
Count
Source
8780
311k
{
8781
311k
    if (SCN_UNLIKELY(!result)) {
8782
38.9k
        return unexpected(result.error());
8783
38.9k
    }
8784
272k
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
311k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned char> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned char>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >&&, std::__1::tuple<unsigned char>&&)
Line
Count
Source
8780
300k
{
8781
300k
    if (SCN_UNLIKELY(!result)) {
8782
38.9k
        return unexpected(result.error());
8783
38.9k
    }
8784
261k
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
300k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long long> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long long>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >&&, std::__1::tuple<long long>&&)
Line
Count
Source
8780
400k
{
8781
400k
    if (SCN_UNLIKELY(!result)) {
8782
38.9k
        return unexpected(result.error());
8783
38.9k
    }
8784
361k
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
400k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned long long> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned long long>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >&&, std::__1::tuple<unsigned long long>&&)
Line
Count
Source
8780
343k
{
8781
343k
    if (SCN_UNLIKELY(!result)) {
8782
38.9k
        return unexpected(result.error());
8783
38.9k
    }
8784
304k
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
343k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, signed char> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, signed char>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > >&&, std::__1::tuple<signed char>&&)
Line
Count
Source
8780
313k
{
8781
313k
    if (SCN_UNLIKELY(!result)) {
8782
38.9k
        return unexpected(result.error());
8783
38.9k
    }
8784
274k
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
313k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned char> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned char>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > >&&, std::__1::tuple<unsigned char>&&)
Line
Count
Source
8780
302k
{
8781
302k
    if (SCN_UNLIKELY(!result)) {
8782
38.9k
        return unexpected(result.error());
8783
38.9k
    }
8784
263k
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
302k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, int> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, int>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > >&&, std::__1::tuple<int>&&)
Line
Count
Source
8780
394k
{
8781
394k
    if (SCN_UNLIKELY(!result)) {
8782
38.9k
        return unexpected(result.error());
8783
38.9k
    }
8784
355k
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
394k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned int> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned int>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > >&&, std::__1::tuple<unsigned int>&&)
Line
Count
Source
8780
341k
{
8781
341k
    if (SCN_UNLIKELY(!result)) {
8782
38.9k
        return unexpected(result.error());
8783
38.9k
    }
8784
302k
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
341k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long long> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long long>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > >&&, std::__1::tuple<long long>&&)
Line
Count
Source
8780
401k
{
8781
401k
    if (SCN_UNLIKELY(!result)) {
8782
38.9k
        return unexpected(result.error());
8783
38.9k
    }
8784
362k
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
401k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned long long> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned long long>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > >&&, std::__1::tuple<unsigned long long>&&)
Line
Count
Source
8780
345k
{
8781
345k
    if (SCN_UNLIKELY(!result)) {
8782
38.9k
        return unexpected(result.error());
8783
38.9k
    }
8784
306k
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
345k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, signed char> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, signed char>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >&&, std::__1::tuple<signed char>&&)
Line
Count
Source
8780
78.3k
{
8781
78.3k
    if (SCN_UNLIKELY(!result)) {
8782
77.8k
        return unexpected(result.error());
8783
77.8k
    }
8784
550
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
78.3k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned char> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned char>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >&&, std::__1::tuple<unsigned char>&&)
Line
Count
Source
8780
78.3k
{
8781
78.3k
    if (SCN_UNLIKELY(!result)) {
8782
77.8k
        return unexpected(result.error());
8783
77.8k
    }
8784
464
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
78.3k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long long> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long long>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >&&, std::__1::tuple<long long>&&)
Line
Count
Source
8780
78.6k
{
8781
78.6k
    if (SCN_UNLIKELY(!result)) {
8782
77.8k
        return unexpected(result.error());
8783
77.8k
    }
8784
794
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
78.6k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned long long> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned long long>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >&&, std::__1::tuple<unsigned long long>&&)
Line
Count
Source
8780
78.4k
{
8781
78.4k
    if (SCN_UNLIKELY(!result)) {
8782
77.8k
        return unexpected(result.error());
8783
77.8k
    }
8784
640
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
78.4k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, signed char> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, signed char>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > >&&, std::__1::tuple<signed char>&&)
Line
Count
Source
8780
78.3k
{
8781
78.3k
    if (SCN_UNLIKELY(!result)) {
8782
77.8k
        return unexpected(result.error());
8783
77.8k
    }
8784
550
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
78.3k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned char> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned char>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > >&&, std::__1::tuple<unsigned char>&&)
Line
Count
Source
8780
78.3k
{
8781
78.3k
    if (SCN_UNLIKELY(!result)) {
8782
77.8k
        return unexpected(result.error());
8783
77.8k
    }
8784
464
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
78.3k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, int> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, int>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > >&&, std::__1::tuple<int>&&)
Line
Count
Source
8780
78.4k
{
8781
78.4k
    if (SCN_UNLIKELY(!result)) {
8782
77.8k
        return unexpected(result.error());
8783
77.8k
    }
8784
656
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
78.4k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned int> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned int>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > >&&, std::__1::tuple<unsigned int>&&)
Line
Count
Source
8780
78.3k
{
8781
78.3k
    if (SCN_UNLIKELY(!result)) {
8782
77.8k
        return unexpected(result.error());
8783
77.8k
    }
8784
522
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
78.3k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long long> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long long>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > >&&, std::__1::tuple<long long>&&)
Line
Count
Source
8780
78.6k
{
8781
78.6k
    if (SCN_UNLIKELY(!result)) {
8782
77.8k
        return unexpected(result.error());
8783
77.8k
    }
8784
794
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
78.6k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned long long> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned long long>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > >&&, std::__1::tuple<unsigned long long>&&)
Line
Count
Source
8780
78.4k
{
8781
78.4k
    if (SCN_UNLIKELY(!result)) {
8782
77.8k
        return unexpected(result.error());
8783
77.8k
    }
8784
640
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
78.4k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > >&&, std::__1::tuple<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
8780
131k
{
8781
131k
    if (SCN_UNLIKELY(!result)) {
8782
9.22k
        return unexpected(result.error());
8783
9.22k
    }
8784
122k
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
131k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > > > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > >&&, std::__1::tuple<std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&&)
Line
Count
Source
8780
15.7M
{
8781
15.7M
    if (SCN_UNLIKELY(!result)) {
8782
18.4k
        return unexpected(result.error());
8783
18.4k
    }
8784
15.6M
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
15.7M
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, float> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, float>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >&&, std::__1::tuple<float>&&)
Line
Count
Source
8780
672k
{
8781
672k
    if (SCN_UNLIKELY(!result)) {
8782
35.8k
        return unexpected(result.error());
8783
35.8k
    }
8784
636k
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
672k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long double> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long double>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >&&, std::__1::tuple<long double>&&)
Line
Count
Source
8780
735k
{
8781
735k
    if (SCN_UNLIKELY(!result)) {
8782
35.8k
        return unexpected(result.error());
8783
35.8k
    }
8784
699k
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
735k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, float> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, float>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > >&&, std::__1::tuple<float>&&)
Line
Count
Source
8780
675k
{
8781
675k
    if (SCN_UNLIKELY(!result)) {
8782
35.8k
        return unexpected(result.error());
8783
35.8k
    }
8784
640k
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
675k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, double> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, double>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > >&&, std::__1::tuple<double>&&)
Line
Count
Source
8780
729k
{
8781
729k
    if (SCN_UNLIKELY(!result)) {
8782
35.8k
        return unexpected(result.error());
8783
35.8k
    }
8784
693k
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
729k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long double> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long double>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > >&&, std::__1::tuple<long double>&&)
Line
Count
Source
8780
738k
{
8781
738k
    if (SCN_UNLIKELY(!result)) {
8782
35.8k
        return unexpected(result.error());
8783
35.8k
    }
8784
702k
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
738k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, float> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, float>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >&&, std::__1::tuple<float>&&)
Line
Count
Source
8780
85.8k
{
8781
85.8k
    if (SCN_UNLIKELY(!result)) {
8782
71.6k
        return unexpected(result.error());
8783
71.6k
    }
8784
14.1k
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
85.8k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long double> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long double>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >&&, std::__1::tuple<long double>&&)
Line
Count
Source
8780
86.0k
{
8781
86.0k
    if (SCN_UNLIKELY(!result)) {
8782
71.6k
        return unexpected(result.error());
8783
71.6k
    }
8784
14.4k
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
86.0k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, float> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, float>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > >&&, std::__1::tuple<float>&&)
Line
Count
Source
8780
85.7k
{
8781
85.7k
    if (SCN_UNLIKELY(!result)) {
8782
71.6k
        return unexpected(result.error());
8783
71.6k
    }
8784
14.1k
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
85.7k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, double> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, double>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > >&&, std::__1::tuple<double>&&)
Line
Count
Source
8780
85.8k
{
8781
85.8k
    if (SCN_UNLIKELY(!result)) {
8782
71.6k
        return unexpected(result.error());
8783
71.6k
    }
8784
14.2k
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
85.8k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long double> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long double>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > >&&, std::__1::tuple<long double>&&)
Line
Count
Source
8780
86.0k
{
8781
86.0k
    if (SCN_UNLIKELY(!result)) {
8782
71.6k
        return unexpected(result.error());
8783
71.6k
    }
8784
14.3k
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
86.0k
}
8786
8787
/**
8788
 * The return type of `scan`, based on the type of the source, and the
8789
 * types of the scanned arguments.
8790
 */
8791
template <typename Source, typename... Args>
8792
using scan_result_type =
8793
    scan_expected<scan_result<detail::scan_result_value_type<Source>, Args...>>;
8794
8795
/**
8796
 * \defgroup scan Basic scanning API
8797
 *
8798
 * \brief The core public-facing interface of the library
8799
 *
8800
 * The following functions use a format string syntax similar to that of
8801
 * `std::format`. See more at \ref format-string.
8802
 *
8803
 * When these functions take a `source` as input, it must
8804
 * model the `scannable_source` concept. See more at \ref scannable.
8805
 */
8806
8807
/**
8808
 * Scans `Args...` from `source`, according to the
8809
 * specifications given in the format string (`format`).
8810
 * Returns the resulting values in an object of type `scan_result`,
8811
 * alongside a `subrange` pointing to the unused input.
8812
 *
8813
 * Example:
8814
 * \code{.cpp}
8815
 * if (auto result = scn::scan<int>("123", "{}"))
8816
 *     int value = result->value();
8817
 * \endcode
8818
 *
8819
 * \ingroup scan
8820
 */
8821
template <typename... Args,
8822
          typename Source,
8823
          typename = std::enable_if_t<detail::is_file_or_narrow_range<Source>>>
8824
SCN_NODISCARD auto scan(Source&& source,
8825
                        scan_format_string<Source, Args...> format)
8826
    -> scan_result_type<Source, Args...>
8827
4.46M
{
8828
4.46M
    auto args = make_scan_args<scan_context, Args...>();
8829
4.46M
    auto result = vscan(SCN_FWD(source), format, args);
8830
4.46M
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8831
4.46M
}
_ZN3scn2v34scanIJcERNSt3__117basic_string_viewIcNS2_11char_traitsIcEEEEvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESF_NS0_6detail22borrowed_tail_subrangeISB_Xsr6rangesE14borrowed_rangeISB_EEE4typeEE4typeEJDpT_EEEEEOSB_NS0_24basic_scan_format_stringIcNSG_13type_identityISB_E4typeEJDpNSS_ISM_E4typeEEEE
Line
Count
Source
8827
4.18k
{
8828
4.18k
    auto args = make_scan_args<scan_context, Args...>();
8829
4.18k
    auto result = vscan(SCN_FWD(source), format, args);
8830
4.18k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8831
4.18k
}
_ZN3scn2v34scanIJiERNSt3__117basic_string_viewIcNS2_11char_traitsIcEEEEvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESF_NS0_6detail22borrowed_tail_subrangeISB_Xsr6rangesE14borrowed_rangeISB_EEE4typeEE4typeEJDpT_EEEEEOSB_NS0_24basic_scan_format_stringIcNSG_13type_identityISB_E4typeEJDpNSS_ISM_E4typeEEEE
Line
Count
Source
8827
4.18k
{
8828
4.18k
    auto args = make_scan_args<scan_context, Args...>();
8829
4.18k
    auto result = vscan(SCN_FWD(source), format, args);
8830
4.18k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8831
4.18k
}
_ZN3scn2v34scanIJjERNSt3__117basic_string_viewIcNS2_11char_traitsIcEEEEvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESF_NS0_6detail22borrowed_tail_subrangeISB_Xsr6rangesE14borrowed_rangeISB_EEE4typeEE4typeEJDpT_EEEEEOSB_NS0_24basic_scan_format_stringIcNSG_13type_identityISB_E4typeEJDpNSS_ISM_E4typeEEEE
Line
Count
Source
8827
4.18k
{
8828
4.18k
    auto args = make_scan_args<scan_context, Args...>();
8829
4.18k
    auto result = vscan(SCN_FWD(source), format, args);
8830
4.18k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8831
4.18k
}
_ZN3scn2v34scanIJdERNSt3__117basic_string_viewIcNS2_11char_traitsIcEEEEvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESF_NS0_6detail22borrowed_tail_subrangeISB_Xsr6rangesE14borrowed_rangeISB_EEE4typeEE4typeEJDpT_EEEEEOSB_NS0_24basic_scan_format_stringIcNSG_13type_identityISB_E4typeEJDpNSS_ISM_E4typeEEEE
Line
Count
Source
8827
4.18k
{
8828
4.18k
    auto args = make_scan_args<scan_context, Args...>();
8829
4.18k
    auto result = vscan(SCN_FWD(source), format, args);
8830
4.18k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8831
4.18k
}
_ZN3scn2v34scanIJbERNSt3__117basic_string_viewIcNS2_11char_traitsIcEEEEvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESF_NS0_6detail22borrowed_tail_subrangeISB_Xsr6rangesE14borrowed_rangeISB_EEE4typeEE4typeEJDpT_EEEEEOSB_NS0_24basic_scan_format_stringIcNSG_13type_identityISB_E4typeEJDpNSS_ISM_E4typeEEEE
Line
Count
Source
8827
4.18k
{
8828
4.18k
    auto args = make_scan_args<scan_context, Args...>();
8829
4.18k
    auto result = vscan(SCN_FWD(source), format, args);
8830
4.18k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8831
4.18k
}
_ZN3scn2v34scanIJPvERNSt3__117basic_string_viewIcNS3_11char_traitsIcEEEEvEENS0_13scan_expectedINS0_11scan_resultINS3_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESG_NS0_6detail22borrowed_tail_subrangeISC_Xsr6rangesE14borrowed_rangeISC_EEE4typeEE4typeEJDpT_EEEEEOSC_NS0_24basic_scan_format_stringIcNSH_13type_identityISC_E4typeEJDpNST_ISN_E4typeEEEE
Line
Count
Source
8827
4.18k
{
8828
4.18k
    auto args = make_scan_args<scan_context, Args...>();
8829
4.18k
    auto result = vscan(SCN_FWD(source), format, args);
8830
4.18k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8831
4.18k
}
_ZN3scn2v34scanIJNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEERNS2_17basic_string_viewIcS5_EEvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESJ_NS0_6detail22borrowed_tail_subrangeISF_Xsr6rangesE14borrowed_rangeISF_EEE4typeEE4typeEJDpT_EEEEEOSF_NS0_24basic_scan_format_stringIcNSK_13type_identityISF_E4typeEJDpNSW_ISQ_E4typeEEEE
Line
Count
Source
8827
4.18k
{
8828
4.18k
    auto args = make_scan_args<scan_context, Args...>();
8829
4.18k
    auto result = vscan(SCN_FWD(source), format, args);
8830
4.18k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8831
4.18k
}
_ZN3scn2v34scanIJNSt3__112basic_stringIwNS2_11char_traitsIwEENS2_9allocatorIwEEEEERNS2_17basic_string_viewIcNS4_IcEEEEvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESK_NS0_6detail22borrowed_tail_subrangeISG_Xsr6rangesE14borrowed_rangeISG_EEE4typeEE4typeEJDpT_EEEEEOSG_NS0_24basic_scan_format_stringIcNSL_13type_identityISG_E4typeEJDpNSX_ISR_E4typeEEEE
Line
Count
Source
8827
4.18k
{
8828
4.18k
    auto args = make_scan_args<scan_context, Args...>();
8829
4.18k
    auto result = vscan(SCN_FWD(source), format, args);
8830
4.18k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8831
4.18k
}
_ZN3scn2v34scanIJNSt3__117basic_string_viewIcNS2_11char_traitsIcEEEEERS6_vEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESF_NS0_6detail22borrowed_tail_subrangeISB_Xsr6rangesE14borrowed_rangeISB_EEE4typeEE4typeEJDpT_EEEEEOSB_NS0_24basic_scan_format_stringIcNSG_13type_identityISB_E4typeEJDpNSS_ISM_E4typeEEEE
Line
Count
Source
8827
4.18k
{
8828
4.18k
    auto args = make_scan_args<scan_context, Args...>();
8829
4.18k
    auto result = vscan(SCN_FWD(source), format, args);
8830
4.18k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8831
4.18k
}
_ZN3scn2v34scanIJaENS0_6ranges6detail9subrange_8subrangeIPKcS7_EEvEENS0_13scan_expectedINS0_11scan_resultINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESH_NS0_6detail22borrowed_tail_subrangeISD_Xsr6rangesE14borrowed_rangeISD_EEE4typeEE4typeEJDpT_EEEEEOSD_NS0_24basic_scan_format_stringIcNSI_13type_identityISD_E4typeEJDpNSU_ISO_E4typeEEEE
Line
Count
Source
8827
155k
{
8828
155k
    auto args = make_scan_args<scan_context, Args...>();
8829
155k
    auto result = vscan(SCN_FWD(source), format, args);
8830
155k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8831
155k
}
_ZN3scn2v34scanIJhENS0_6ranges6detail9subrange_8subrangeIPKcS7_EEvEENS0_13scan_expectedINS0_11scan_resultINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESH_NS0_6detail22borrowed_tail_subrangeISD_Xsr6rangesE14borrowed_rangeISD_EEE4typeEE4typeEJDpT_EEEEEOSD_NS0_24basic_scan_format_stringIcNSI_13type_identityISD_E4typeEJDpNSU_ISO_E4typeEEEE
Line
Count
Source
8827
150k
{
8828
150k
    auto args = make_scan_args<scan_context, Args...>();
8829
150k
    auto result = vscan(SCN_FWD(source), format, args);
8830
150k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8831
150k
}
_ZN3scn2v34scanIJiENS0_6ranges6detail9subrange_8subrangeIPKcS7_EEvEENS0_13scan_expectedINS0_11scan_resultINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESH_NS0_6detail22borrowed_tail_subrangeISD_Xsr6rangesE14borrowed_rangeISD_EEE4typeEE4typeEJDpT_EEEEEOSD_NS0_24basic_scan_format_stringIcNSI_13type_identityISD_E4typeEJDpNSU_ISO_E4typeEEEE
Line
Count
Source
8827
196k
{
8828
196k
    auto args = make_scan_args<scan_context, Args...>();
8829
196k
    auto result = vscan(SCN_FWD(source), format, args);
8830
196k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8831
196k
}
_ZN3scn2v34scanIJjENS0_6ranges6detail9subrange_8subrangeIPKcS7_EEvEENS0_13scan_expectedINS0_11scan_resultINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESH_NS0_6detail22borrowed_tail_subrangeISD_Xsr6rangesE14borrowed_rangeISD_EEE4typeEE4typeEJDpT_EEEEEOSD_NS0_24basic_scan_format_stringIcNSI_13type_identityISD_E4typeEJDpNSU_ISO_E4typeEEEE
Line
Count
Source
8827
169k
{
8828
169k
    auto args = make_scan_args<scan_context, Args...>();
8829
169k
    auto result = vscan(SCN_FWD(source), format, args);
8830
169k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8831
169k
}
_ZN3scn2v34scanIJxENS0_6ranges6detail9subrange_8subrangeIPKcS7_EEvEENS0_13scan_expectedINS0_11scan_resultINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESH_NS0_6detail22borrowed_tail_subrangeISD_Xsr6rangesE14borrowed_rangeISD_EEE4typeEE4typeEJDpT_EEEEEOSD_NS0_24basic_scan_format_stringIcNSI_13type_identityISD_E4typeEJDpNSU_ISO_E4typeEEEE
Line
Count
Source
8827
200k
{
8828
200k
    auto args = make_scan_args<scan_context, Args...>();
8829
200k
    auto result = vscan(SCN_FWD(source), format, args);
8830
200k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8831
200k
}
_ZN3scn2v34scanIJyENS0_6ranges6detail9subrange_8subrangeIPKcS7_EEvEENS0_13scan_expectedINS0_11scan_resultINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESH_NS0_6detail22borrowed_tail_subrangeISD_Xsr6rangesE14borrowed_rangeISD_EEE4typeEE4typeEJDpT_EEEEEOSD_NS0_24basic_scan_format_stringIcNSI_13type_identityISD_E4typeEJDpNSU_ISO_E4typeEEEE
Line
Count
Source
8827
171k
{
8828
171k
    auto args = make_scan_args<scan_context, Args...>();
8829
171k
    auto result = vscan(SCN_FWD(source), format, args);
8830
171k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8831
171k
}
_ZN3scn2v34scanIJaENS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS8_PKS9_lLl4096EEESD_EEvEENS0_13scan_expectedINS0_11scan_resultINS6_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESM_NS0_6detail22borrowed_tail_subrangeISI_Xsr6rangesE14borrowed_rangeISI_EEE4typeEE4typeEJDpT_EEEEEOSI_NS0_24basic_scan_format_stringIcNSN_13type_identityISI_E4typeEJDpNSZ_IST_E4typeEEEE
Line
Count
Source
8827
156k
{
8828
156k
    auto args = make_scan_args<scan_context, Args...>();
8829
156k
    auto result = vscan(SCN_FWD(source), format, args);
8830
156k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8831
156k
}
_ZN3scn2v34scanIJhENS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS8_PKS9_lLl4096EEESD_EEvEENS0_13scan_expectedINS0_11scan_resultINS6_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESM_NS0_6detail22borrowed_tail_subrangeISI_Xsr6rangesE14borrowed_rangeISI_EEE4typeEE4typeEJDpT_EEEEEOSI_NS0_24basic_scan_format_stringIcNSN_13type_identityISI_E4typeEJDpNSZ_IST_E4typeEEEE
Line
Count
Source
8827
151k
{
8828
151k
    auto args = make_scan_args<scan_context, Args...>();
8829
151k
    auto result = vscan(SCN_FWD(source), format, args);
8830
151k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8831
151k
}
_ZN3scn2v34scanIJiENS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS8_PKS9_lLl4096EEESD_EEvEENS0_13scan_expectedINS0_11scan_resultINS6_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESM_NS0_6detail22borrowed_tail_subrangeISI_Xsr6rangesE14borrowed_rangeISI_EEE4typeEE4typeEJDpT_EEEEEOSI_NS0_24basic_scan_format_stringIcNSN_13type_identityISI_E4typeEJDpNSZ_IST_E4typeEEEE
Line
Count
Source
8827
197k
{
8828
197k
    auto args = make_scan_args<scan_context, Args...>();
8829
197k
    auto result = vscan(SCN_FWD(source), format, args);
8830
197k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8831
197k
}
_ZN3scn2v34scanIJjENS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS8_PKS9_lLl4096EEESD_EEvEENS0_13scan_expectedINS0_11scan_resultINS6_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESM_NS0_6detail22borrowed_tail_subrangeISI_Xsr6rangesE14borrowed_rangeISI_EEE4typeEE4typeEJDpT_EEEEEOSI_NS0_24basic_scan_format_stringIcNSN_13type_identityISI_E4typeEJDpNSZ_IST_E4typeEEEE
Line
Count
Source
8827
170k
{
8828
170k
    auto args = make_scan_args<scan_context, Args...>();
8829
170k
    auto result = vscan(SCN_FWD(source), format, args);
8830
170k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8831
170k
}
_ZN3scn2v34scanIJxENS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS8_PKS9_lLl4096EEESD_EEvEENS0_13scan_expectedINS0_11scan_resultINS6_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESM_NS0_6detail22borrowed_tail_subrangeISI_Xsr6rangesE14borrowed_rangeISI_EEE4typeEE4typeEJDpT_EEEEEOSI_NS0_24basic_scan_format_stringIcNSN_13type_identityISI_E4typeEJDpNSZ_IST_E4typeEEEE
Line
Count
Source
8827
200k
{
8828
200k
    auto args = make_scan_args<scan_context, Args...>();
8829
200k
    auto result = vscan(SCN_FWD(source), format, args);
8830
200k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8831
200k
}
_ZN3scn2v34scanIJyENS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS8_PKS9_lLl4096EEESD_EEvEENS0_13scan_expectedINS0_11scan_resultINS6_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESM_NS0_6detail22borrowed_tail_subrangeISI_Xsr6rangesE14borrowed_rangeISI_EEE4typeEE4typeEJDpT_EEEEEOSI_NS0_24basic_scan_format_stringIcNSN_13type_identityISI_E4typeEJDpNSZ_IST_E4typeEEEE
Line
Count
Source
8827
172k
{
8828
172k
    auto args = make_scan_args<scan_context, Args...>();
8829
172k
    auto result = vscan(SCN_FWD(source), format, args);
8830
172k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8831
172k
}
_ZN3scn2v34scanIJNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEENS0_6ranges6detail9subrange_8subrangeIPKcSE_EEvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESN_NS0_6detail22borrowed_tail_subrangeISJ_Xsr6rangesE14borrowed_rangeISJ_EEE4typeEE4typeEJDpT_EEEEEOSJ_NS0_24basic_scan_format_stringIcNSO_13type_identityISJ_E4typeEJDpNS10_ISU_E4typeEEEE
Line
Count
Source
8827
65.1k
{
8828
65.1k
    auto args = make_scan_args<scan_context, Args...>();
8829
65.1k
    auto result = vscan(SCN_FWD(source), format, args);
8830
65.1k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8831
65.1k
}
_ZN3scn2v34scanIJNSt3__117basic_string_viewIcNS2_11char_traitsIcEEEEENS0_6ranges6detail9subrange_8subrangeIPKcSC_EEvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESL_NS0_6detail22borrowed_tail_subrangeISH_Xsr6rangesE14borrowed_rangeISH_EEE4typeEE4typeEJDpT_EEEEEOSH_NS0_24basic_scan_format_stringIcNSM_13type_identityISH_E4typeEJDpNSY_ISS_E4typeEEEE
Line
Count
Source
8827
65.1k
{
8828
65.1k
    auto args = make_scan_args<scan_context, Args...>();
8829
65.1k
    auto result = vscan(SCN_FWD(source), format, args);
8830
65.1k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8831
65.1k
}
_ZN3scn2v34scanIJNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEENS0_6ranges6detail9subrange_8subrangeINS2_16__deque_iteratorIcPKcRSE_PKSF_lLl4096EEESJ_EEvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESS_NS0_6detail22borrowed_tail_subrangeISO_Xsr6rangesE14borrowed_rangeISO_EEE4typeEE4typeEJDpT_EEEEEOSO_NS0_24basic_scan_format_stringIcNST_13type_identityISO_E4typeEJDpNS15_ISZ_E4typeEEEE
Line
Count
Source
8827
65.7k
{
8828
65.7k
    auto args = make_scan_args<scan_context, Args...>();
8829
65.7k
    auto result = vscan(SCN_FWD(source), format, args);
8830
65.7k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8831
65.7k
}
_ZN3scn2v34scanIJfENS0_6ranges6detail9subrange_8subrangeIPKcS7_EEvEENS0_13scan_expectedINS0_11scan_resultINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESH_NS0_6detail22borrowed_tail_subrangeISD_Xsr6rangesE14borrowed_rangeISD_EEE4typeEE4typeEJDpT_EEEEEOSD_NS0_24basic_scan_format_stringIcNSI_13type_identityISD_E4typeEJDpNSU_ISO_E4typeEEEE
Line
Count
Source
8827
336k
{
8828
336k
    auto args = make_scan_args<scan_context, Args...>();
8829
336k
    auto result = vscan(SCN_FWD(source), format, args);
8830
336k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8831
336k
}
_ZN3scn2v34scanIJdENS0_6ranges6detail9subrange_8subrangeIPKcS7_EEvEENS0_13scan_expectedINS0_11scan_resultINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESH_NS0_6detail22borrowed_tail_subrangeISD_Xsr6rangesE14borrowed_rangeISD_EEE4typeEE4typeEJDpT_EEEEEOSD_NS0_24basic_scan_format_stringIcNSI_13type_identityISD_E4typeEJDpNSU_ISO_E4typeEEEE
Line
Count
Source
8827
362k
{
8828
362k
    auto args = make_scan_args<scan_context, Args...>();
8829
362k
    auto result = vscan(SCN_FWD(source), format, args);
8830
362k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8831
362k
}
_ZN3scn2v34scanIJeENS0_6ranges6detail9subrange_8subrangeIPKcS7_EEvEENS0_13scan_expectedINS0_11scan_resultINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESH_NS0_6detail22borrowed_tail_subrangeISD_Xsr6rangesE14borrowed_rangeISD_EEE4typeEE4typeEJDpT_EEEEEOSD_NS0_24basic_scan_format_stringIcNSI_13type_identityISD_E4typeEJDpNSU_ISO_E4typeEEEE
Line
Count
Source
8827
367k
{
8828
367k
    auto args = make_scan_args<scan_context, Args...>();
8829
367k
    auto result = vscan(SCN_FWD(source), format, args);
8830
367k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8831
367k
}
_ZN3scn2v34scanIJfENS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS8_PKS9_lLl4096EEESD_EEvEENS0_13scan_expectedINS0_11scan_resultINS6_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESM_NS0_6detail22borrowed_tail_subrangeISI_Xsr6rangesE14borrowed_rangeISI_EEE4typeEE4typeEJDpT_EEEEEOSI_NS0_24basic_scan_format_stringIcNSN_13type_identityISI_E4typeEJDpNSZ_IST_E4typeEEEE
Line
Count
Source
8827
337k
{
8828
337k
    auto args = make_scan_args<scan_context, Args...>();
8829
337k
    auto result = vscan(SCN_FWD(source), format, args);
8830
337k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8831
337k
}
_ZN3scn2v34scanIJdENS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS8_PKS9_lLl4096EEESD_EEvEENS0_13scan_expectedINS0_11scan_resultINS6_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESM_NS0_6detail22borrowed_tail_subrangeISI_Xsr6rangesE14borrowed_rangeISI_EEE4typeEE4typeEJDpT_EEEEEOSI_NS0_24basic_scan_format_stringIcNSN_13type_identityISI_E4typeEJDpNSZ_IST_E4typeEEEE
Line
Count
Source
8827
364k
{
8828
364k
    auto args = make_scan_args<scan_context, Args...>();
8829
364k
    auto result = vscan(SCN_FWD(source), format, args);
8830
364k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8831
364k
}
_ZN3scn2v34scanIJeENS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS8_PKS9_lLl4096EEESD_EEvEENS0_13scan_expectedINS0_11scan_resultINS6_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESM_NS0_6detail22borrowed_tail_subrangeISI_Xsr6rangesE14borrowed_rangeISI_EEE4typeEE4typeEJDpT_EEEEEOSI_NS0_24basic_scan_format_stringIcNSN_13type_identityISI_E4typeEJDpNSZ_IST_E4typeEEEE
Line
Count
Source
8827
369k
{
8828
369k
    auto args = make_scan_args<scan_context, Args...>();
8829
369k
    auto result = vscan(SCN_FWD(source), format, args);
8830
369k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8831
369k
}
8832
8833
/**
8834
 * `scan` with explicitly supplied default values
8835
 *
8836
 * Can be used, for example, for pre-allocating a scanned string:
8837
 *
8838
 * \code{.cpp}
8839
 * std::string str;
8840
 * str.reserve(64);
8841
 *
8842
 * // As long as the read string fits in `str`,
8843
 * // does not allocate
8844
 * auto result = scn::scan<std::string>(source, "{}",
8845
 *                                      {std::move(str)});
8846
 * // Access the read string with result->value()
8847
 * \endcode
8848
 *
8849
 * \ingroup scan
8850
 */
8851
template <typename... Args,
8852
          typename Source,
8853
          typename = std::enable_if_t<detail::is_file_or_narrow_range<Source>>>
8854
SCN_NODISCARD auto scan(Source&& source,
8855
                        scan_format_string<Source, Args...> format,
8856
                        std::tuple<Args...>&& initial_args)
8857
    -> scan_result_type<Source, Args...>
8858
{
8859
    auto args = make_scan_args<scan_context, Args...>(SCN_FWD(initial_args));
8860
    auto result = vscan(SCN_FWD(source), format, args);
8861
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8862
}
8863
8864
/**
8865
 * \defgroup locale Localization
8866
 *
8867
 * \brief Scanning APIs that allow passing in a locale
8868
 */
8869
8870
/**
8871
 * `scan` using an explicit locale.
8872
 *
8873
 * Has no effect on its own, locale-specific scanning still needs to be
8874
 * opted-into on an argument-by-argument basis, with the `L` format string
8875
 * specifier.
8876
 *
8877
 * \code{.cpp}
8878
 * auto result = scn::scan<double>(
8879
 *     std::locale{"fi_FI.UTF-8"}, "3,14, "{:L}");
8880
 * // result->value() == 3.14
8881
 * \endcode
8882
 *
8883
 * \ingroup locale
8884
 */
8885
template <typename... Args,
8886
          typename Locale,
8887
          typename Source,
8888
          typename = std::enable_if_t<detail::is_file_or_narrow_range<Source>>,
8889
          typename = std::void_t<decltype(Locale::classic())>>
8890
SCN_NODISCARD auto scan(const Locale& loc,
8891
                        Source&& source,
8892
                        scan_format_string<Source, Args...> format)
8893
    -> scan_result_type<Source, Args...>
8894
4.46M
{
8895
4.46M
    auto args = make_scan_args<scan_context, Args...>();
8896
4.46M
    auto result = vscan(loc, SCN_FWD(source), format, args);
8897
4.46M
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8898
4.46M
}
_ZN3scn2v34scanIJcENSt3__16localeERNS2_17basic_string_viewIcNS2_11char_traitsIcEEEEvvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESG_NS0_6detail22borrowed_tail_subrangeISC_Xsr6rangesE14borrowed_rangeISC_EEE4typeEE4typeEJDpT_EEEEERKT0_OSC_NS0_24basic_scan_format_stringIcNSH_13type_identityISC_E4typeEJDpNSW_ISN_E4typeEEEE
Line
Count
Source
8894
4.18k
{
8895
4.18k
    auto args = make_scan_args<scan_context, Args...>();
8896
4.18k
    auto result = vscan(loc, SCN_FWD(source), format, args);
8897
4.18k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8898
4.18k
}
_ZN3scn2v34scanIJiENSt3__16localeERNS2_17basic_string_viewIcNS2_11char_traitsIcEEEEvvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESG_NS0_6detail22borrowed_tail_subrangeISC_Xsr6rangesE14borrowed_rangeISC_EEE4typeEE4typeEJDpT_EEEEERKT0_OSC_NS0_24basic_scan_format_stringIcNSH_13type_identityISC_E4typeEJDpNSW_ISN_E4typeEEEE
Line
Count
Source
8894
4.18k
{
8895
4.18k
    auto args = make_scan_args<scan_context, Args...>();
8896
4.18k
    auto result = vscan(loc, SCN_FWD(source), format, args);
8897
4.18k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8898
4.18k
}
_ZN3scn2v34scanIJjENSt3__16localeERNS2_17basic_string_viewIcNS2_11char_traitsIcEEEEvvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESG_NS0_6detail22borrowed_tail_subrangeISC_Xsr6rangesE14borrowed_rangeISC_EEE4typeEE4typeEJDpT_EEEEERKT0_OSC_NS0_24basic_scan_format_stringIcNSH_13type_identityISC_E4typeEJDpNSW_ISN_E4typeEEEE
Line
Count
Source
8894
4.18k
{
8895
4.18k
    auto args = make_scan_args<scan_context, Args...>();
8896
4.18k
    auto result = vscan(loc, SCN_FWD(source), format, args);
8897
4.18k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8898
4.18k
}
_ZN3scn2v34scanIJdENSt3__16localeERNS2_17basic_string_viewIcNS2_11char_traitsIcEEEEvvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESG_NS0_6detail22borrowed_tail_subrangeISC_Xsr6rangesE14borrowed_rangeISC_EEE4typeEE4typeEJDpT_EEEEERKT0_OSC_NS0_24basic_scan_format_stringIcNSH_13type_identityISC_E4typeEJDpNSW_ISN_E4typeEEEE
Line
Count
Source
8894
4.18k
{
8895
4.18k
    auto args = make_scan_args<scan_context, Args...>();
8896
4.18k
    auto result = vscan(loc, SCN_FWD(source), format, args);
8897
4.18k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8898
4.18k
}
_ZN3scn2v34scanIJbENSt3__16localeERNS2_17basic_string_viewIcNS2_11char_traitsIcEEEEvvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESG_NS0_6detail22borrowed_tail_subrangeISC_Xsr6rangesE14borrowed_rangeISC_EEE4typeEE4typeEJDpT_EEEEERKT0_OSC_NS0_24basic_scan_format_stringIcNSH_13type_identityISC_E4typeEJDpNSW_ISN_E4typeEEEE
Line
Count
Source
8894
4.18k
{
8895
4.18k
    auto args = make_scan_args<scan_context, Args...>();
8896
4.18k
    auto result = vscan(loc, SCN_FWD(source), format, args);
8897
4.18k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8898
4.18k
}
_ZN3scn2v34scanIJPvENSt3__16localeERNS3_17basic_string_viewIcNS3_11char_traitsIcEEEEvvEENS0_13scan_expectedINS0_11scan_resultINS3_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESH_NS0_6detail22borrowed_tail_subrangeISD_Xsr6rangesE14borrowed_rangeISD_EEE4typeEE4typeEJDpT_EEEEERKT0_OSD_NS0_24basic_scan_format_stringIcNSI_13type_identityISD_E4typeEJDpNSX_ISO_E4typeEEEE
Line
Count
Source
8894
4.18k
{
8895
4.18k
    auto args = make_scan_args<scan_context, Args...>();
8896
4.18k
    auto result = vscan(loc, SCN_FWD(source), format, args);
8897
4.18k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8898
4.18k
}
_ZN3scn2v34scanIJNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEENS2_6localeERNS2_17basic_string_viewIcS5_EEvvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESK_NS0_6detail22borrowed_tail_subrangeISG_Xsr6rangesE14borrowed_rangeISG_EEE4typeEE4typeEJDpT_EEEEERKT0_OSG_NS0_24basic_scan_format_stringIcNSL_13type_identityISG_E4typeEJDpNS10_ISR_E4typeEEEE
Line
Count
Source
8894
4.18k
{
8895
4.18k
    auto args = make_scan_args<scan_context, Args...>();
8896
4.18k
    auto result = vscan(loc, SCN_FWD(source), format, args);
8897
4.18k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8898
4.18k
}
_ZN3scn2v34scanIJNSt3__112basic_stringIwNS2_11char_traitsIwEENS2_9allocatorIwEEEEENS2_6localeERNS2_17basic_string_viewIcNS4_IcEEEEvvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESL_NS0_6detail22borrowed_tail_subrangeISH_Xsr6rangesE14borrowed_rangeISH_EEE4typeEE4typeEJDpT_EEEEERKT0_OSH_NS0_24basic_scan_format_stringIcNSM_13type_identityISH_E4typeEJDpNS11_ISS_E4typeEEEE
Line
Count
Source
8894
4.18k
{
8895
4.18k
    auto args = make_scan_args<scan_context, Args...>();
8896
4.18k
    auto result = vscan(loc, SCN_FWD(source), format, args);
8897
4.18k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8898
4.18k
}
_ZN3scn2v34scanIJNSt3__117basic_string_viewIcNS2_11char_traitsIcEEEEENS2_6localeERS6_vvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESG_NS0_6detail22borrowed_tail_subrangeISC_Xsr6rangesE14borrowed_rangeISC_EEE4typeEE4typeEJDpT_EEEEERKT0_OSC_NS0_24basic_scan_format_stringIcNSH_13type_identityISC_E4typeEJDpNSW_ISN_E4typeEEEE
Line
Count
Source
8894
4.18k
{
8895
4.18k
    auto args = make_scan_args<scan_context, Args...>();
8896
4.18k
    auto result = vscan(loc, SCN_FWD(source), format, args);
8897
4.18k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8898
4.18k
}
_ZN3scn2v34scanIJaENSt3__16localeENS0_6ranges6detail9subrange_8subrangeIPKcS9_EEvvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESI_NS0_6detail22borrowed_tail_subrangeISE_Xsr6rangesE14borrowed_rangeISE_EEE4typeEE4typeEJDpT_EEEEERKT0_OSE_NS0_24basic_scan_format_stringIcNSJ_13type_identityISE_E4typeEJDpNSY_ISP_E4typeEEEE
Line
Count
Source
8894
155k
{
8895
155k
    auto args = make_scan_args<scan_context, Args...>();
8896
155k
    auto result = vscan(loc, SCN_FWD(source), format, args);
8897
155k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8898
155k
}
_ZN3scn2v34scanIJhENSt3__16localeENS0_6ranges6detail9subrange_8subrangeIPKcS9_EEvvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESI_NS0_6detail22borrowed_tail_subrangeISE_Xsr6rangesE14borrowed_rangeISE_EEE4typeEE4typeEJDpT_EEEEERKT0_OSE_NS0_24basic_scan_format_stringIcNSJ_13type_identityISE_E4typeEJDpNSY_ISP_E4typeEEEE
Line
Count
Source
8894
150k
{
8895
150k
    auto args = make_scan_args<scan_context, Args...>();
8896
150k
    auto result = vscan(loc, SCN_FWD(source), format, args);
8897
150k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8898
150k
}
_ZN3scn2v34scanIJiENSt3__16localeENS0_6ranges6detail9subrange_8subrangeIPKcS9_EEvvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESI_NS0_6detail22borrowed_tail_subrangeISE_Xsr6rangesE14borrowed_rangeISE_EEE4typeEE4typeEJDpT_EEEEERKT0_OSE_NS0_24basic_scan_format_stringIcNSJ_13type_identityISE_E4typeEJDpNSY_ISP_E4typeEEEE
Line
Count
Source
8894
196k
{
8895
196k
    auto args = make_scan_args<scan_context, Args...>();
8896
196k
    auto result = vscan(loc, SCN_FWD(source), format, args);
8897
196k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8898
196k
}
_ZN3scn2v34scanIJjENSt3__16localeENS0_6ranges6detail9subrange_8subrangeIPKcS9_EEvvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESI_NS0_6detail22borrowed_tail_subrangeISE_Xsr6rangesE14borrowed_rangeISE_EEE4typeEE4typeEJDpT_EEEEERKT0_OSE_NS0_24basic_scan_format_stringIcNSJ_13type_identityISE_E4typeEJDpNSY_ISP_E4typeEEEE
Line
Count
Source
8894
169k
{
8895
169k
    auto args = make_scan_args<scan_context, Args...>();
8896
169k
    auto result = vscan(loc, SCN_FWD(source), format, args);
8897
169k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8898
169k
}
_ZN3scn2v34scanIJxENSt3__16localeENS0_6ranges6detail9subrange_8subrangeIPKcS9_EEvvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESI_NS0_6detail22borrowed_tail_subrangeISE_Xsr6rangesE14borrowed_rangeISE_EEE4typeEE4typeEJDpT_EEEEERKT0_OSE_NS0_24basic_scan_format_stringIcNSJ_13type_identityISE_E4typeEJDpNSY_ISP_E4typeEEEE
Line
Count
Source
8894
200k
{
8895
200k
    auto args = make_scan_args<scan_context, Args...>();
8896
200k
    auto result = vscan(loc, SCN_FWD(source), format, args);
8897
200k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8898
200k
}
_ZN3scn2v34scanIJyENSt3__16localeENS0_6ranges6detail9subrange_8subrangeIPKcS9_EEvvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESI_NS0_6detail22borrowed_tail_subrangeISE_Xsr6rangesE14borrowed_rangeISE_EEE4typeEE4typeEJDpT_EEEEERKT0_OSE_NS0_24basic_scan_format_stringIcNSJ_13type_identityISE_E4typeEJDpNSY_ISP_E4typeEEEE
Line
Count
Source
8894
171k
{
8895
171k
    auto args = make_scan_args<scan_context, Args...>();
8896
171k
    auto result = vscan(loc, SCN_FWD(source), format, args);
8897
171k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8898
171k
}
_ZN3scn2v34scanIJaENSt3__16localeENS0_6ranges6detail9subrange_8subrangeINS2_16__deque_iteratorIcPKcRS9_PKSA_lLl4096EEESE_EEvvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESN_NS0_6detail22borrowed_tail_subrangeISJ_Xsr6rangesE14borrowed_rangeISJ_EEE4typeEE4typeEJDpT_EEEEERKT0_OSJ_NS0_24basic_scan_format_stringIcNSO_13type_identityISJ_E4typeEJDpNS13_ISU_E4typeEEEE
Line
Count
Source
8894
156k
{
8895
156k
    auto args = make_scan_args<scan_context, Args...>();
8896
156k
    auto result = vscan(loc, SCN_FWD(source), format, args);
8897
156k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8898
156k
}
_ZN3scn2v34scanIJhENSt3__16localeENS0_6ranges6detail9subrange_8subrangeINS2_16__deque_iteratorIcPKcRS9_PKSA_lLl4096EEESE_EEvvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESN_NS0_6detail22borrowed_tail_subrangeISJ_Xsr6rangesE14borrowed_rangeISJ_EEE4typeEE4typeEJDpT_EEEEERKT0_OSJ_NS0_24basic_scan_format_stringIcNSO_13type_identityISJ_E4typeEJDpNS13_ISU_E4typeEEEE
Line
Count
Source
8894
151k
{
8895
151k
    auto args = make_scan_args<scan_context, Args...>();
8896
151k
    auto result = vscan(loc, SCN_FWD(source), format, args);
8897
151k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8898
151k
}
_ZN3scn2v34scanIJiENSt3__16localeENS0_6ranges6detail9subrange_8subrangeINS2_16__deque_iteratorIcPKcRS9_PKSA_lLl4096EEESE_EEvvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESN_NS0_6detail22borrowed_tail_subrangeISJ_Xsr6rangesE14borrowed_rangeISJ_EEE4typeEE4typeEJDpT_EEEEERKT0_OSJ_NS0_24basic_scan_format_stringIcNSO_13type_identityISJ_E4typeEJDpNS13_ISU_E4typeEEEE
Line
Count
Source
8894
197k
{
8895
197k
    auto args = make_scan_args<scan_context, Args...>();
8896
197k
    auto result = vscan(loc, SCN_FWD(source), format, args);
8897
197k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8898
197k
}
_ZN3scn2v34scanIJjENSt3__16localeENS0_6ranges6detail9subrange_8subrangeINS2_16__deque_iteratorIcPKcRS9_PKSA_lLl4096EEESE_EEvvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESN_NS0_6detail22borrowed_tail_subrangeISJ_Xsr6rangesE14borrowed_rangeISJ_EEE4typeEE4typeEJDpT_EEEEERKT0_OSJ_NS0_24basic_scan_format_stringIcNSO_13type_identityISJ_E4typeEJDpNS13_ISU_E4typeEEEE
Line
Count
Source
8894
170k
{
8895
170k
    auto args = make_scan_args<scan_context, Args...>();
8896
170k
    auto result = vscan(loc, SCN_FWD(source), format, args);
8897
170k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8898
170k
}
_ZN3scn2v34scanIJxENSt3__16localeENS0_6ranges6detail9subrange_8subrangeINS2_16__deque_iteratorIcPKcRS9_PKSA_lLl4096EEESE_EEvvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESN_NS0_6detail22borrowed_tail_subrangeISJ_Xsr6rangesE14borrowed_rangeISJ_EEE4typeEE4typeEJDpT_EEEEERKT0_OSJ_NS0_24basic_scan_format_stringIcNSO_13type_identityISJ_E4typeEJDpNS13_ISU_E4typeEEEE
Line
Count
Source
8894
200k
{
8895
200k
    auto args = make_scan_args<scan_context, Args...>();
8896
200k
    auto result = vscan(loc, SCN_FWD(source), format, args);
8897
200k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8898
200k
}
_ZN3scn2v34scanIJyENSt3__16localeENS0_6ranges6detail9subrange_8subrangeINS2_16__deque_iteratorIcPKcRS9_PKSA_lLl4096EEESE_EEvvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESN_NS0_6detail22borrowed_tail_subrangeISJ_Xsr6rangesE14borrowed_rangeISJ_EEE4typeEE4typeEJDpT_EEEEERKT0_OSJ_NS0_24basic_scan_format_stringIcNSO_13type_identityISJ_E4typeEJDpNS13_ISU_E4typeEEEE
Line
Count
Source
8894
172k
{
8895
172k
    auto args = make_scan_args<scan_context, Args...>();
8896
172k
    auto result = vscan(loc, SCN_FWD(source), format, args);
8897
172k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8898
172k
}
_ZN3scn2v34scanIJNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEENS2_6localeENS0_6ranges6detail9subrange_8subrangeIPKcSF_EEvvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESO_NS0_6detail22borrowed_tail_subrangeISK_Xsr6rangesE14borrowed_rangeISK_EEE4typeEE4typeEJDpT_EEEEERKT0_OSK_NS0_24basic_scan_format_stringIcNSP_13type_identityISK_E4typeEJDpNS14_ISV_E4typeEEEE
Line
Count
Source
8894
65.1k
{
8895
65.1k
    auto args = make_scan_args<scan_context, Args...>();
8896
65.1k
    auto result = vscan(loc, SCN_FWD(source), format, args);
8897
65.1k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8898
65.1k
}
_ZN3scn2v34scanIJNSt3__117basic_string_viewIcNS2_11char_traitsIcEEEEENS2_6localeENS0_6ranges6detail9subrange_8subrangeIPKcSD_EEvvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESM_NS0_6detail22borrowed_tail_subrangeISI_Xsr6rangesE14borrowed_rangeISI_EEE4typeEE4typeEJDpT_EEEEERKT0_OSI_NS0_24basic_scan_format_stringIcNSN_13type_identityISI_E4typeEJDpNS12_IST_E4typeEEEE
Line
Count
Source
8894
65.1k
{
8895
65.1k
    auto args = make_scan_args<scan_context, Args...>();
8896
65.1k
    auto result = vscan(loc, SCN_FWD(source), format, args);
8897
65.1k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8898
65.1k
}
_ZN3scn2v34scanIJNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEENS2_6localeENS0_6ranges6detail9subrange_8subrangeINS2_16__deque_iteratorIcPKcRSF_PKSG_lLl4096EEESK_EEvvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEEST_NS0_6detail22borrowed_tail_subrangeISP_Xsr6rangesE14borrowed_rangeISP_EEE4typeEE4typeEJDpT_EEEEERKT0_OSP_NS0_24basic_scan_format_stringIcNSU_13type_identityISP_E4typeEJDpNS19_IS10_E4typeEEEE
Line
Count
Source
8894
65.7k
{
8895
65.7k
    auto args = make_scan_args<scan_context, Args...>();
8896
65.7k
    auto result = vscan(loc, SCN_FWD(source), format, args);
8897
65.7k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8898
65.7k
}
_ZN3scn2v34scanIJfENSt3__16localeENS0_6ranges6detail9subrange_8subrangeIPKcS9_EEvvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESI_NS0_6detail22borrowed_tail_subrangeISE_Xsr6rangesE14borrowed_rangeISE_EEE4typeEE4typeEJDpT_EEEEERKT0_OSE_NS0_24basic_scan_format_stringIcNSJ_13type_identityISE_E4typeEJDpNSY_ISP_E4typeEEEE
Line
Count
Source
8894
336k
{
8895
336k
    auto args = make_scan_args<scan_context, Args...>();
8896
336k
    auto result = vscan(loc, SCN_FWD(source), format, args);
8897
336k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8898
336k
}
_ZN3scn2v34scanIJdENSt3__16localeENS0_6ranges6detail9subrange_8subrangeIPKcS9_EEvvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESI_NS0_6detail22borrowed_tail_subrangeISE_Xsr6rangesE14borrowed_rangeISE_EEE4typeEE4typeEJDpT_EEEEERKT0_OSE_NS0_24basic_scan_format_stringIcNSJ_13type_identityISE_E4typeEJDpNSY_ISP_E4typeEEEE
Line
Count
Source
8894
362k
{
8895
362k
    auto args = make_scan_args<scan_context, Args...>();
8896
362k
    auto result = vscan(loc, SCN_FWD(source), format, args);
8897
362k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8898
362k
}
_ZN3scn2v34scanIJeENSt3__16localeENS0_6ranges6detail9subrange_8subrangeIPKcS9_EEvvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESI_NS0_6detail22borrowed_tail_subrangeISE_Xsr6rangesE14borrowed_rangeISE_EEE4typeEE4typeEJDpT_EEEEERKT0_OSE_NS0_24basic_scan_format_stringIcNSJ_13type_identityISE_E4typeEJDpNSY_ISP_E4typeEEEE
Line
Count
Source
8894
367k
{
8895
367k
    auto args = make_scan_args<scan_context, Args...>();
8896
367k
    auto result = vscan(loc, SCN_FWD(source), format, args);
8897
367k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8898
367k
}
_ZN3scn2v34scanIJfENSt3__16localeENS0_6ranges6detail9subrange_8subrangeINS2_16__deque_iteratorIcPKcRS9_PKSA_lLl4096EEESE_EEvvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESN_NS0_6detail22borrowed_tail_subrangeISJ_Xsr6rangesE14borrowed_rangeISJ_EEE4typeEE4typeEJDpT_EEEEERKT0_OSJ_NS0_24basic_scan_format_stringIcNSO_13type_identityISJ_E4typeEJDpNS13_ISU_E4typeEEEE
Line
Count
Source
8894
337k
{
8895
337k
    auto args = make_scan_args<scan_context, Args...>();
8896
337k
    auto result = vscan(loc, SCN_FWD(source), format, args);
8897
337k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8898
337k
}
_ZN3scn2v34scanIJdENSt3__16localeENS0_6ranges6detail9subrange_8subrangeINS2_16__deque_iteratorIcPKcRS9_PKSA_lLl4096EEESE_EEvvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESN_NS0_6detail22borrowed_tail_subrangeISJ_Xsr6rangesE14borrowed_rangeISJ_EEE4typeEE4typeEJDpT_EEEEERKT0_OSJ_NS0_24basic_scan_format_stringIcNSO_13type_identityISJ_E4typeEJDpNS13_ISU_E4typeEEEE
Line
Count
Source
8894
364k
{
8895
364k
    auto args = make_scan_args<scan_context, Args...>();
8896
364k
    auto result = vscan(loc, SCN_FWD(source), format, args);
8897
364k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8898
364k
}
_ZN3scn2v34scanIJeENSt3__16localeENS0_6ranges6detail9subrange_8subrangeINS2_16__deque_iteratorIcPKcRS9_PKSA_lLl4096EEESE_EEvvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESN_NS0_6detail22borrowed_tail_subrangeISJ_Xsr6rangesE14borrowed_rangeISJ_EEE4typeEE4typeEJDpT_EEEEERKT0_OSJ_NS0_24basic_scan_format_stringIcNSO_13type_identityISJ_E4typeEJDpNS13_ISU_E4typeEEEE
Line
Count
Source
8894
369k
{
8895
369k
    auto args = make_scan_args<scan_context, Args...>();
8896
369k
    auto result = vscan(loc, SCN_FWD(source), format, args);
8897
369k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8898
369k
}
8899
8900
/**
8901
 * `scan` with a locale and default values
8902
 *
8903
 * \ingroup locale
8904
 */
8905
template <typename... Args,
8906
          typename Locale,
8907
          typename Source,
8908
          typename = std::enable_if_t<detail::is_file_or_narrow_range<Source>>,
8909
          typename = std::void_t<decltype(Locale::classic())>>
8910
SCN_NODISCARD auto scan(const Locale& loc,
8911
                        Source&& source,
8912
                        scan_format_string<Source, Args...> format,
8913
                        std::tuple<Args...>&& initial_args)
8914
    -> scan_result_type<Source, Args...>
8915
{
8916
    auto args = make_scan_args<scan_context, Args...>(SCN_FWD(initial_args));
8917
    auto result = vscan(loc, SCN_FWD(source), format, args);
8918
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8919
}
8920
8921
/**
8922
 * `scan` a single value, with default options.
8923
 *
8924
 * Essentially equivalent to: `scn::scan<T>(source, "{}")`,
8925
 * except it can skip parsing the format string, gaining performance.
8926
 *
8927
 * \ingroup scan
8928
 */
8929
template <typename T,
8930
          typename Source,
8931
          typename = std::enable_if_t<detail::is_file_or_narrow_range<Source>>>
8932
SCN_NODISCARD auto scan_value(Source&& source) -> scan_result_type<Source, T>
8933
879k
{
8934
879k
    T value;
8935
879k
    auto arg = detail::make_arg<scan_context>(value);
8936
879k
    SCN_TRY(it, vscan_value(SCN_FWD(source), arg));
8937
835k
    return scan_result{SCN_MOVE(it), std::tuple{SCN_MOVE(value)}};
8938
879k
}
_ZN3scn2v310scan_valueIaNS0_6ranges6detail9subrange_8subrangeIPKcS7_EEvEENS0_13scan_expectedINS0_11scan_resultINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESH_NS0_6detail22borrowed_tail_subrangeISD_Xsr6rangesE14borrowed_rangeISD_EEE4typeEE4typeEJT_EEEEEOSD_
Line
Count
Source
8933
26.2k
{
8934
26.2k
    T value;
8935
26.2k
    auto arg = detail::make_arg<scan_context>(value);
8936
26.2k
    SCN_TRY(it, vscan_value(SCN_FWD(source), arg));
8937
24.3k
    return scan_result{SCN_MOVE(it), std::tuple{SCN_MOVE(value)}};
8938
26.2k
}
_ZN3scn2v310scan_valueIhNS0_6ranges6detail9subrange_8subrangeIPKcS7_EEvEENS0_13scan_expectedINS0_11scan_resultINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESH_NS0_6detail22borrowed_tail_subrangeISD_Xsr6rangesE14borrowed_rangeISD_EEE4typeEE4typeEJT_EEEEEOSD_
Line
Count
Source
8933
23.3k
{
8934
23.3k
    T value;
8935
23.3k
    auto arg = detail::make_arg<scan_context>(value);
8936
23.3k
    SCN_TRY(it, vscan_value(SCN_FWD(source), arg));
8937
21.3k
    return scan_result{SCN_MOVE(it), std::tuple{SCN_MOVE(value)}};
8938
23.3k
}
_ZN3scn2v310scan_valueIiNS0_6ranges6detail9subrange_8subrangeIPKcS7_EEvEENS0_13scan_expectedINS0_11scan_resultINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESH_NS0_6detail22borrowed_tail_subrangeISD_Xsr6rangesE14borrowed_rangeISD_EEE4typeEE4typeEJT_EEEEEOSD_
Line
Count
Source
8933
30.3k
{
8934
30.3k
    T value;
8935
30.3k
    auto arg = detail::make_arg<scan_context>(value);
8936
30.3k
    SCN_TRY(it, vscan_value(SCN_FWD(source), arg));
8937
28.4k
    return scan_result{SCN_MOVE(it), std::tuple{SCN_MOVE(value)}};
8938
30.3k
}
_ZN3scn2v310scan_valueIjNS0_6ranges6detail9subrange_8subrangeIPKcS7_EEvEENS0_13scan_expectedINS0_11scan_resultINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESH_NS0_6detail22borrowed_tail_subrangeISD_Xsr6rangesE14borrowed_rangeISD_EEE4typeEE4typeEJT_EEEEEOSD_
Line
Count
Source
8933
26.0k
{
8934
26.0k
    T value;
8935
26.0k
    auto arg = detail::make_arg<scan_context>(value);
8936
26.0k
    SCN_TRY(it, vscan_value(SCN_FWD(source), arg));
8937
24.0k
    return scan_result{SCN_MOVE(it), std::tuple{SCN_MOVE(value)}};
8938
26.0k
}
_ZN3scn2v310scan_valueIxNS0_6ranges6detail9subrange_8subrangeIPKcS7_EEvEENS0_13scan_expectedINS0_11scan_resultINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESH_NS0_6detail22borrowed_tail_subrangeISD_Xsr6rangesE14borrowed_rangeISD_EEE4typeEE4typeEJT_EEEEEOSD_
Line
Count
Source
8933
30.9k
{
8934
30.9k
    T value;
8935
30.9k
    auto arg = detail::make_arg<scan_context>(value);
8936
30.9k
    SCN_TRY(it, vscan_value(SCN_FWD(source), arg));
8937
29.0k
    return scan_result{SCN_MOVE(it), std::tuple{SCN_MOVE(value)}};
8938
30.9k
}
_ZN3scn2v310scan_valueIyNS0_6ranges6detail9subrange_8subrangeIPKcS7_EEvEENS0_13scan_expectedINS0_11scan_resultINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESH_NS0_6detail22borrowed_tail_subrangeISD_Xsr6rangesE14borrowed_rangeISD_EEE4typeEE4typeEJT_EEEEEOSD_
Line
Count
Source
8933
26.3k
{
8934
26.3k
    T value;
8935
26.3k
    auto arg = detail::make_arg<scan_context>(value);
8936
26.3k
    SCN_TRY(it, vscan_value(SCN_FWD(source), arg));
8937
24.4k
    return scan_result{SCN_MOVE(it), std::tuple{SCN_MOVE(value)}};
8938
26.3k
}
_ZN3scn2v310scan_valueIaNS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS8_PKS9_lLl4096EEESD_EEvEENS0_13scan_expectedINS0_11scan_resultINS6_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESM_NS0_6detail22borrowed_tail_subrangeISI_Xsr6rangesE14borrowed_rangeISI_EEE4typeEE4typeEJT_EEEEEOSI_
Line
Count
Source
8933
26.2k
{
8934
26.2k
    T value;
8935
26.2k
    auto arg = detail::make_arg<scan_context>(value);
8936
26.2k
    SCN_TRY(it, vscan_value(SCN_FWD(source), arg));
8937
24.2k
    return scan_result{SCN_MOVE(it), std::tuple{SCN_MOVE(value)}};
8938
26.2k
}
_ZN3scn2v310scan_valueIhNS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS8_PKS9_lLl4096EEESD_EEvEENS0_13scan_expectedINS0_11scan_resultINS6_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESM_NS0_6detail22borrowed_tail_subrangeISI_Xsr6rangesE14borrowed_rangeISI_EEE4typeEE4typeEJT_EEEEEOSI_
Line
Count
Source
8933
23.2k
{
8934
23.2k
    T value;
8935
23.2k
    auto arg = detail::make_arg<scan_context>(value);
8936
23.2k
    SCN_TRY(it, vscan_value(SCN_FWD(source), arg));
8937
21.3k
    return scan_result{SCN_MOVE(it), std::tuple{SCN_MOVE(value)}};
8938
23.2k
}
_ZN3scn2v310scan_valueIiNS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS8_PKS9_lLl4096EEESD_EEvEENS0_13scan_expectedINS0_11scan_resultINS6_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESM_NS0_6detail22borrowed_tail_subrangeISI_Xsr6rangesE14borrowed_rangeISI_EEE4typeEE4typeEJT_EEEEEOSI_
Line
Count
Source
8933
29.8k
{
8934
29.8k
    T value;
8935
29.8k
    auto arg = detail::make_arg<scan_context>(value);
8936
29.8k
    SCN_TRY(it, vscan_value(SCN_FWD(source), arg));
8937
27.8k
    return scan_result{SCN_MOVE(it), std::tuple{SCN_MOVE(value)}};
8938
29.8k
}
_ZN3scn2v310scan_valueIjNS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS8_PKS9_lLl4096EEESD_EEvEENS0_13scan_expectedINS0_11scan_resultINS6_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESM_NS0_6detail22borrowed_tail_subrangeISI_Xsr6rangesE14borrowed_rangeISI_EEE4typeEE4typeEJT_EEEEEOSI_
Line
Count
Source
8933
25.9k
{
8934
25.9k
    T value;
8935
25.9k
    auto arg = detail::make_arg<scan_context>(value);
8936
25.9k
    SCN_TRY(it, vscan_value(SCN_FWD(source), arg));
8937
24.0k
    return scan_result{SCN_MOVE(it), std::tuple{SCN_MOVE(value)}};
8938
25.9k
}
_ZN3scn2v310scan_valueIxNS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS8_PKS9_lLl4096EEESD_EEvEENS0_13scan_expectedINS0_11scan_resultINS6_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESM_NS0_6detail22borrowed_tail_subrangeISI_Xsr6rangesE14borrowed_rangeISI_EEE4typeEE4typeEJT_EEEEEOSI_
Line
Count
Source
8933
30.3k
{
8934
30.3k
    T value;
8935
30.3k
    auto arg = detail::make_arg<scan_context>(value);
8936
30.3k
    SCN_TRY(it, vscan_value(SCN_FWD(source), arg));
8937
28.4k
    return scan_result{SCN_MOVE(it), std::tuple{SCN_MOVE(value)}};
8938
30.3k
}
_ZN3scn2v310scan_valueIyNS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS8_PKS9_lLl4096EEESD_EEvEENS0_13scan_expectedINS0_11scan_resultINS6_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESM_NS0_6detail22borrowed_tail_subrangeISI_Xsr6rangesE14borrowed_rangeISI_EEE4typeEE4typeEJT_EEEEEOSI_
Line
Count
Source
8933
26.2k
{
8934
26.2k
    T value;
8935
26.2k
    auto arg = detail::make_arg<scan_context>(value);
8936
26.2k
    SCN_TRY(it, vscan_value(SCN_FWD(source), arg));
8937
24.3k
    return scan_result{SCN_MOVE(it), std::tuple{SCN_MOVE(value)}};
8938
26.2k
}
_ZN3scn2v310scan_valueINSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEENS0_6ranges6detail9subrange_8subrangeIPKcSE_EEvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESN_NS0_6detail22borrowed_tail_subrangeISJ_Xsr6rangesE14borrowed_rangeISJ_EEE4typeEE4typeEJT_EEEEEOSJ_
Line
Count
Source
8933
30.8k
{
8934
30.8k
    T value;
8935
30.8k
    auto arg = detail::make_arg<scan_context>(value);
8936
30.8k
    SCN_TRY(it, vscan_value(SCN_FWD(source), arg));
8937
30.0k
    return scan_result{SCN_MOVE(it), std::tuple{SCN_MOVE(value)}};
8938
30.8k
}
_ZN3scn2v310scan_valueINSt3__117basic_string_viewIcNS2_11char_traitsIcEEEENS0_6ranges6detail9subrange_8subrangeIPKcSC_EEvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESL_NS0_6detail22borrowed_tail_subrangeISH_Xsr6rangesE14borrowed_rangeISH_EEE4typeEE4typeEJT_EEEEEOSH_
Line
Count
Source
8933
30.8k
{
8934
30.8k
    T value;
8935
30.8k
    auto arg = detail::make_arg<scan_context>(value);
8936
30.8k
    SCN_TRY(it, vscan_value(SCN_FWD(source), arg));
8937
30.0k
    return scan_result{SCN_MOVE(it), std::tuple{SCN_MOVE(value)}};
8938
30.8k
}
_ZN3scn2v310scan_valueINSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEENS0_6ranges6detail9subrange_8subrangeINS2_16__deque_iteratorIcPKcRSE_PKSF_lLl4096EEESJ_EEvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESS_NS0_6detail22borrowed_tail_subrangeISO_Xsr6rangesE14borrowed_rangeISO_EEE4typeEE4typeEJT_EEEEEOSO_
Line
Count
Source
8933
31.2k
{
8934
31.2k
    T value;
8935
31.2k
    auto arg = detail::make_arg<scan_context>(value);
8936
31.2k
    SCN_TRY(it, vscan_value(SCN_FWD(source), arg));
8937
30.4k
    return scan_result{SCN_MOVE(it), std::tuple{SCN_MOVE(value)}};
8938
31.2k
}
_ZN3scn2v310scan_valueIfNS0_6ranges6detail9subrange_8subrangeIPKcS7_EEvEENS0_13scan_expectedINS0_11scan_resultINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESH_NS0_6detail22borrowed_tail_subrangeISD_Xsr6rangesE14borrowed_rangeISD_EEE4typeEE4typeEJT_EEEEEOSD_
Line
Count
Source
8933
73.7k
{
8934
73.7k
    T value;
8935
73.7k
    auto arg = detail::make_arg<scan_context>(value);
8936
73.7k
    SCN_TRY(it, vscan_value(SCN_FWD(source), arg));
8937
70.7k
    return scan_result{SCN_MOVE(it), std::tuple{SCN_MOVE(value)}};
8938
73.7k
}
_ZN3scn2v310scan_valueIdNS0_6ranges6detail9subrange_8subrangeIPKcS7_EEvEENS0_13scan_expectedINS0_11scan_resultINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESH_NS0_6detail22borrowed_tail_subrangeISD_Xsr6rangesE14borrowed_rangeISD_EEE4typeEE4typeEJT_EEEEEOSD_
Line
Count
Source
8933
81.6k
{
8934
81.6k
    T value;
8935
81.6k
    auto arg = detail::make_arg<scan_context>(value);
8936
81.6k
    SCN_TRY(it, vscan_value(SCN_FWD(source), arg));
8937
78.6k
    return scan_result{SCN_MOVE(it), std::tuple{SCN_MOVE(value)}};
8938
81.6k
}
_ZN3scn2v310scan_valueIeNS0_6ranges6detail9subrange_8subrangeIPKcS7_EEvEENS0_13scan_expectedINS0_11scan_resultINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESH_NS0_6detail22borrowed_tail_subrangeISD_Xsr6rangesE14borrowed_rangeISD_EEE4typeEE4typeEJT_EEEEEOSD_
Line
Count
Source
8933
83.1k
{
8934
83.1k
    T value;
8935
83.1k
    auto arg = detail::make_arg<scan_context>(value);
8936
83.1k
    SCN_TRY(it, vscan_value(SCN_FWD(source), arg));
8937
80.1k
    return scan_result{SCN_MOVE(it), std::tuple{SCN_MOVE(value)}};
8938
83.1k
}
_ZN3scn2v310scan_valueIfNS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS8_PKS9_lLl4096EEESD_EEvEENS0_13scan_expectedINS0_11scan_resultINS6_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESM_NS0_6detail22borrowed_tail_subrangeISI_Xsr6rangesE14borrowed_rangeISI_EEE4typeEE4typeEJT_EEEEEOSI_
Line
Count
Source
8933
68.9k
{
8934
68.9k
    T value;
8935
68.9k
    auto arg = detail::make_arg<scan_context>(value);
8936
68.9k
    SCN_TRY(it, vscan_value(SCN_FWD(source), arg));
8937
65.9k
    return scan_result{SCN_MOVE(it), std::tuple{SCN_MOVE(value)}};
8938
68.9k
}
_ZN3scn2v310scan_valueIdNS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS8_PKS9_lLl4096EEESD_EEvEENS0_13scan_expectedINS0_11scan_resultINS6_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESM_NS0_6detail22borrowed_tail_subrangeISI_Xsr6rangesE14borrowed_rangeISI_EEE4typeEE4typeEJT_EEEEEOSI_
Line
Count
Source
8933
76.4k
{
8934
76.4k
    T value;
8935
76.4k
    auto arg = detail::make_arg<scan_context>(value);
8936
76.4k
    SCN_TRY(it, vscan_value(SCN_FWD(source), arg));
8937
73.4k
    return scan_result{SCN_MOVE(it), std::tuple{SCN_MOVE(value)}};
8938
76.4k
}
_ZN3scn2v310scan_valueIeNS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS8_PKS9_lLl4096EEESD_EEvEENS0_13scan_expectedINS0_11scan_resultINS6_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESM_NS0_6detail22borrowed_tail_subrangeISI_Xsr6rangesE14borrowed_rangeISI_EEE4typeEE4typeEJT_EEEEEOSI_
Line
Count
Source
8933
77.4k
{
8934
77.4k
    T value;
8935
77.4k
    auto arg = detail::make_arg<scan_context>(value);
8936
77.4k
    SCN_TRY(it, vscan_value(SCN_FWD(source), arg));
8937
74.4k
    return scan_result{SCN_MOVE(it), std::tuple{SCN_MOVE(value)}};
8938
77.4k
}
8939
8940
/**
8941
 * `scan` a single value, with default options, and a default value.
8942
 *
8943
 * \ingroup scan
8944
 */
8945
template <typename T,
8946
          typename Source,
8947
          std::enable_if_t<detail::is_file_or_narrow_range<Source>>* = nullptr>
8948
SCN_NODISCARD auto scan_value(Source&& source, T initial_value)
8949
    -> scan_result_type<Source, T>
8950
{
8951
    auto arg = detail::make_arg<scan_context>(initial_value);
8952
    SCN_TRY(it, vscan_value(SCN_FWD(source), arg));
8953
    return scan_result{SCN_MOVE(it), std::tuple{SCN_MOVE(initial_value)}};
8954
}
8955
8956
/**
8957
 * Scan from `stdin`.
8958
 *
8959
 * Equivalent to `scn::scan<...>(stdin, ...)`.
8960
 *
8961
 * \code{.cpp}
8962
 * auto result = scn::input<int>("{}");
8963
 * \endcode
8964
 *
8965
 * \ingroup scan
8966
 */
8967
template <typename... Args>
8968
SCN_NODISCARD auto input(scan_format_string<std::FILE*, Args...> format)
8969
    -> scan_result_type<std::FILE*, Args...>
8970
{
8971
    auto args = make_scan_args<scan_context, Args...>();
8972
    auto err = vinput(format, args);
8973
    if (SCN_UNLIKELY(!err)) {
8974
        return unexpected(err);
8975
    }
8976
    return scan_result{stdin, SCN_MOVE(args.args())};
8977
}
8978
8979
/**
8980
 * Write msg to stdout, and call `input<Args...>(format)`
8981
 *
8982
 * \ingroup scan
8983
 */
8984
template <typename... Args>
8985
SCN_NODISCARD auto prompt(const char* msg,
8986
                          scan_format_string<std::FILE*, Args...> format)
8987
    -> scan_result_type<std::FILE*, Args...>
8988
{
8989
    std::printf("%s", msg);
8990
    std::fflush(stdout);
8991
    return input<Args...>(format);
8992
}
8993
8994
namespace detail {
8995
template <typename T>
8996
inline constexpr bool is_scan_int_type =
8997
    std::is_integral_v<T> && !std::is_same_v<T, char> &&
8998
    !std::is_same_v<T, wchar_t> && !std::is_same_v<T, char32_t> &&
8999
    !std::is_same_v<T, bool>;
9000
}
9001
9002
/**
9003
 * Fast integer reading.
9004
 *
9005
 * Quickly reads an integer from a `std::string_view`. Skips preceding
9006
 * whitespace.
9007
 *
9008
 * Reads in the specified base,
9009
 * allowing a base prefix. Set `base` to `0` to detect the base from the
9010
 * input. `base` must either be `0`, or in range `[2, 36]`.
9011
 *
9012
 * \ingroup scan
9013
 */
9014
template <typename T, std::enable_if_t<detail::is_scan_int_type<T>>* = nullptr>
9015
SCN_NODISCARD auto scan_int(std::string_view source, int base = 10)
9016
    -> scan_result_type<std::string_view, T>
9017
{
9018
    T value{};
9019
    SCN_TRY(it, detail::scan_int_impl(source, value, base));
9020
    return scan_result{ranges::subrange{it, source.end()}, std::tuple{value}};
9021
}
9022
9023
namespace detail {
9024
template <bool Val, typename T>
9025
inline constexpr bool dependent_bool = Val;
9026
}
9027
9028
/**
9029
 * Very fast integer reading.
9030
 *
9031
 * Quickly reads an integer from a `std::string_view`.
9032
 *
9033
 * Be very careful when using this one!
9034
 * Its speed comes from some very heavy assumptions about the validity of
9035
 * the input:
9036
 *  - `source` must not be empty.
9037
 *  - `source` contains nothing but the integer: no leading or trailing
9038
 *    whitespace, no extra junk. Leading `-` is allowed for signed types,
9039
 *    no `+` is allowed.
9040
 *  - The parsed value does not overflow.
9041
 *  - The input is a valid base-10 integer.
9042
 * Breaking these assumptions will lead to UB.
9043
 *
9044
 * \ingroup scan
9045
 */
9046
template <typename T, std::enable_if_t<detail::is_scan_int_type<T>>* = nullptr>
9047
SCN_NODISCARD auto scan_int_exhaustive_valid(std::string_view source) -> T
9048
{
9049
    static_assert(
9050
        detail::dependent_bool<!SCN_IS_BIG_ENDIAN, T>,
9051
        "scan_int_exhaustive_valid requires a little endian environment");
9052
    return detail::scan_int_exhaustive_valid_impl<T>(source);
9053
}
9054
9055
SCN_END_NAMESPACE
9056
}  // namespace scn